Forum de discussions pour les webmasters et les web developpeurs. (PHP, SQL, XHTML, JavaScript, Référencement, Positionnement,...)
Vous n'êtes pas identifié.
Pages: 1
Bonjour
En faite tout est dans le sujet ^^. Je sais par avance que le nom des champs doivent être différent et appelé par des echo différent mais quand est il lorsque le formulaire se présente de cette façon:
Supposons 3 checkbox portant le même nom qui en faite pourrait très bien en être qu'une seule se trouvant dans une boucle:
<input type="checkbox" name="premierevaleur" value="valeur1"/>
<form name="frm" method="get" action="#">
valeur1<input type="checkbox" name="premierevaleur" value="valeur1"/><br />
valeur2<input type="checkbox" name="premierevaleur" value="valeur2"/><br />
valeur3<input type="checkbox" name="premierevaleur" value="valeur3"/><br />
<input type="submit" name="envoyer" value="Envoyer" />
</form>
<?php if(isset($_GET["premierevaleur"])){
$teste1 = $_GET["premierevaleur"];
//Si $teste1 est différent de vide donc coché j'affiche alors le résultat des checkbox cochées
while ($teste1 != "")
{
echo "$teste1";
}
}
?>Dans mon résultat, je vois bien que les variables des checkbox cochés transites par l'url mais je ne parviens pas à les afficher( une seule s'affiche) et en plus sa boucle à l'infinie.
Pourquoi? Quelle est le soucis ?
Bon, ceci est juste pour ma culture perso
!
Merci d'avance
Hors ligne
Bonjour et bienvenue,
Je pense que c'est ce code la qu'il te faut.
<form name="frm" method="get" action=""> valeur1<input type="checkbox" name="premierevaleur[]" value="valeur1"/><br /> valeur2<input type="checkbox" name="premierevaleur[]" value="valeur2"/><br /> valeur3<input type="checkbox" name="premierevaleur[]" value="valeur3"/><br /> <input type="submit" name="envoyer" value="Envoyer" /> </form> <?php $TabValeur=$_GET["premierevaleur"]; if(sizeof($TabValeur)) foreach ($TabValeur as $valeur) echo "$valeur<br />\n"; ?>
J'ai remplacé le while par un foreach, sa prend moin de ressources selon moi.
Si tu comprend pas le code je peu me lancer dans des explications, mais je ne pence pas que ce soit utile.
Hors ligne
Merci Crocxx
,
Pour les "explications", il ne faut pas se fier aux apparences ^^ ... voilà des expressions que je ne connaissais pas comme sizeof et foreach, alors j'ai tenté de comprendre
!
En tout cas sa fonctionne très bien.
Peut on faire la même avec une boucle while?
Hors ligne
En faite foreach sa sert a lire chaque ligne d'un tableau une par une, et sizeof à retourné la taille d'un tableau. ^^
Tu peu bien sur utiliser while mais dans ce cas je ne te le conseil pas trop, un for serai mieux à la rigeure si tu veut lire toutes les lignes.
//Avec un for
$NbLigne=sizeof($TabValeur);
for($i=0;$i<$NbLigne;$i++) echo $_GET["premierevaleur"][$i];
//Avec un while
$NbLigne=sizeof($TabValeur);
$i=0;
while($i<$NbLigne)
{
echo $_GET["premierevaleur"][$i];
$i++;
}J'ai pas testé les codes mais normalement tous fonctionne ^^
Hors ligne
Merci pour ces explications
.
Je viens de tester avec for et while sans résultat .. sa ne fonctionne pas ^^.
Par ce teste, j'essaye de répondre à une question qui est la suivante:
Dans un formulaire et contenue dans une boucle il y a:
...
$query1 = mysql_query("SELECT * FROM DATES ORDER BY `DATES`.`id_date` ASC");
$id = "";
while($affiche1 = mysql_fetch_array($query1))
{
$id_date = $affiche1['id_date'];
$id.="$id_date <br />";
<input type='checkbox' name='id_date' value='$id_date' />
}
...Ce qui fait qu'il y a plusieurs checkbox.
Dans une autre page je récupère les valeurs transmise par $_GET
<? $id_date=$_GET['id_date']; echo"$id_date"; ?>
Le hic est que sa me renvoit qu'un seul résultat tout comme dans mon teste tout en haut au debut! Il me manque donc forcement une variable quelque part...
ps:Pense à installer la toolbar de punbb pour le BBcode ... c'est vachement utile ^^ !
Dernière modification par c00lman (06-03-2008 10:58:46)
Hors ligne
En faite avec les checkbox pour retourner plusieurs valeurs dans un tableau tu doit utiliser les crochets avec la propriété name:
while($affiche1 = mysql_fetch_array($query1))
{
$id_date = $affiche1['id_date'];
$id.=$id_date.'<br />';
echo'<input type="checkbox" name="id_date[]" value="'.$id_date.'" /><br/>';
}Pour le while et le for, je vais vérifier sa tous à leurs, mais à première vu, j'ai pas vu d'erreur.
Hors ligne
Autant pour moi ^^, j'avais viré la ligne $TabValeur=$_GET["premierevaleur"]; pour les teste avec for et while. Rien à dire, sa fonctionne très bien
.
Sur ta dernière réponse avec le crochets, le code pour afficher la variable dans l'autre page change également je suppose ?:
<? $id_date=$_GET['id_date']; echo"$id_date"; ?>
Hors ligne
Oui en fait tu reçois les variables dans un tableau 2 dimensions:
$_GET['id_date'][0]; $_GET['id_date'][1]; $_GET['id_date'][2]; // .... $_GET['id_date'][n];
Dans ton tableau tu à une ligne par champ envoyé.
Attention n commence à zero.
C'est ensuite assez facile à traiter comme résultat.
Hors ligne
Pages: 1