J'essaie d'afficher mes images dans A pour boucle dans la balise de formulaire à l'aide de PHP, mais cela ne semble pas fonctionner. J'ai aussi essayé de faire une déclaration de retour mais rien n'apparaît toujours.
5 Réponses :
Peut-être comme ceci:
function displayCheckboxes($img_array){
foreach($img_array as $img) {
echo "<img src='".$img."'>'" . "<br>";
}
}
andecho displayCheckboxes($data);There is several errors with your function :
- $data is not inside the function
- .jpg is already in the image name.
Je vous ai donné +1 pour être le premier à voir le problème avec le code d'origine était le paramètre manquant. Avec cela, il n'y avait aucune raison de modifier son nom du paramètre de $ de données.
Cela devrait fonctionner, appelez la fonction avec $ données
$data = array("images/architecture-57e8d34a48_640.jpg",
"images/gateway-arch-57e2d64548_640.jpg",
"images/horseshoe-bend-57e6d6434f_640.jpg",
"images/lake-irene-57e6d24a4d_640.jpg",
"images/silhouette-57e8d5444e_640.jpg");
/* Write your displayCheckboxes() function here */
displayCheckboxes($data);
function displayCheckboxes($data){
for ($i=0; $i<count($data); $i++) {
echo "<img src='".$data[$i]."'.jpg>'" . "<br>";
}
}
?>
<?php
$data = array(
"images/architecture-57e8d34a48_640.jpg",
"images/gateway-arch-57e2d64548_640.jpg",
"images/horseshoe-bend-57e6d6434f_640.jpg",
"images/lake-irene-57e6d24a4d_640.jpg",
"images/silhouette-57e8d5444e_640.jpg"
);
?>
<body>
<main id ="main">
<form id="pics" action="process.php" method="get">
<label>Name: </label>
<?php foreach($data as $image): ?>
<img src="<?= $image; ?>"></br>
<?php endforeach; ?>
</form>
</main>
</body>
This is an alternative way. Looks much cleaner and readable. And I actually don't think we need a function for printing HTML.I would say NEVER put HTML inside PHP echo unless it is compulsory. The reason I am stating this is if you put HTML inside PHP, the code becomes easily messy. It becomes hard to understand the logic unless you are the one who coded. Particularly, if you are working with some designers or in future, they will have a hard time making even little changes. Even I think using <?= than <?php echo is better.
Je suis d'accord avec l'utilisation de pourach. J'aime aussi l'utilisation de la syntaxe alternative PHP pour que la présentation soit séparée de la logique. C'est la même raison que les gens utilisent des classes de modèle comme Smarty, Twig et la lame.
@gview Je suis d'accord avec vous.
Merci @harishst. et @gview!
en php ressemble à -> vous devez supprimer l'extension echo " ". "
"; code>
, mais en html ressemble à ->
code> p>
Désolé, j'ai oublié de supprimer cette partie lorsque j'ai posté la question. Merci
Vous n'avez pas PHP?> Tags sur votre code PHP. Vous écrivez deux fois l'extension JPG et vous appelez deux fois la fonction PHP Echo. Je pense que vous avez besoin d'ajouter Si vous souhaitez afficher une case à cocher dans votre formulaire.
Bonjour, mon ami. Votre extrait de code n'est pas valide, car vous ne terminez pas votre bloc PHP après la fonction. Est-ce votre vrai code?
Utilisez l'approche de Harish. Foreach vaut mieux que dans cette situation, car vous n'avez pas besoin d'une condition pour la boucle (plus simple), vous n'avez pas besoin d'utiliser pour la variable de comptoir.
@threeside Oui, je vais ajouter mes cases à cocher après que je puisse afficher mes images
@gview Soryy mon code est un peu en désordre. La matrice de données et la fonction appartiennent ensemble dans un fichier .php et les codes appartiennent à un autre fichier.
En fait, je me rétracte cela. Le problème évident est que votre fonction DisplayCheckboxes n'a aucun paramètre qui lui est transmis. Vous avez besoin de passer des données $ dans un paramètre. Mais encore une fois, ce n'est pas une préoccupation en utilisant la méthode que j'ai suggérée.