Transfert d'un nombre aléatoire de variable
Résolu/Fermé
A voir également:
- Transfert d'un nombre aléatoire de variable
- We transfert - Guide
- Web transfert - Télécharger - Téléchargement & Transfert
- Tirage au sort excel aléatoire sans doublon ✓ - Forum Excel
- Service de transfert intelligent ✓ - Forum Windows 10
- En raison d'un nombre important d'échec de connexion snapchat - Forum Snapchat
4 réponses
gaerebut
Messages postés
1017
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
22 novembre 2013
171
18 mai 2010 à 12:27
18 mai 2010 à 12:27
Bonjour,
pour ce genre de problème tu peux utiliser un compteur qui s'incrémente à chaque tour de boucle while() (à la fin).
Ensuite, tu attribue un name à chaque élement, concaténé à la valeur de ton compteur !
Exemple:
<input type="checkbox" name="Absent_' . $cpt . ' " value="Absent"/>
Ici $cpt est le compteur.
Ensuite, comme $_POST est un tableau regroupant tout le contenu des element ayant un name.
Il y aura toute tes variables.
Pour tout récupérer, c'est le même principe, tu peux regarder le nombre total d'enregistrement reçu et le divisé par le nombre de champs (pour savoir le nombre de tour de boucle while fait précédement). Puis tu fais une boucle for avec la valeur de se compteur.
Rien de plus dur mais fallait y penser :-)
A+
Gaerebut
pour ce genre de problème tu peux utiliser un compteur qui s'incrémente à chaque tour de boucle while() (à la fin).
Ensuite, tu attribue un name à chaque élement, concaténé à la valeur de ton compteur !
Exemple:
<input type="checkbox" name="Absent_' . $cpt . ' " value="Absent"/>
Ici $cpt est le compteur.
Ensuite, comme $_POST est un tableau regroupant tout le contenu des element ayant un name.
Il y aura toute tes variables.
Pour tout récupérer, c'est le même principe, tu peux regarder le nombre total d'enregistrement reçu et le divisé par le nombre de champs (pour savoir le nombre de tour de boucle while fait précédement). Puis tu fais une boucle for avec la valeur de se compteur.
Rien de plus dur mais fallait y penser :-)
A+
Gaerebut
J'avais pensé à ça mais abandonné après m'etre ecrasé sur un autre problème.
chaque checkbox est unique car identifié par l'id d'un eleve (par exemple "Absent12")
j'ai créé un champ texte ou sont enregistrés toutes les absences, chacune séparée par un espace
j'ai créé un compteur qui s'incrémente de 1 pour chaque id eleve créé dans le tableau. tout ça est envoyé à ma page de traitement ($nb).
coté page de traitement, j'ai essayé de faire un
Normalement ça m'a créé un tableau "Liste" avec n elements "AbsentXX" (XX etant id eleve)
et la je fait une boucle
Le problème c'est que ça ne m'affiche rien :/
chaque checkbox est unique car identifié par l'id d'un eleve (par exemple "Absent12")
j'ai créé un champ texte ou sont enregistrés toutes les absences, chacune séparée par un espace
j'ai créé un compteur qui s'incrémente de 1 pour chaque id eleve créé dans le tableau. tout ça est envoyé à ma page de traitement ($nb).
coté page de traitement, j'ai essayé de faire un
$liste=explode (" ", $ids)avec $ids comme liste de mes id eleves.
Normalement ça m'a créé un tableau "Liste" avec n elements "AbsentXX" (XX etant id eleve)
et la je fait une boucle
$i=0; while($i<$nb){ $temp = $liste[$i]; echo $_POST[''.$temp] . "<br>"; $i++; }
Le problème c'est que ça ne m'affiche rien :/
Problème résolu.
Dans ma page avec le tableau de checkbox, j'ai créé un champ caché qui recupere les id d'eleves, séparés par un espace. Une fois le conteu de ce champ récupéré dans l'autre page, je fais un explode() dessus, ce qui me donne un tableau rempli d'id, je n'ai plus qu'a faire une boucle qui va tourner count(tableau d'id)-1 (la derniere cellule est toujours vide) et pour obtenir les valeurs de mes checkbox, je n'ai qu'a concaténer un mot(Absent, Retard, Present ou Dispense) et l'id et enfin j'ecris ça dans ma bdd.
Je mets le code:
page tableau checkbox:
page recup (pas finie):
Dans ma page avec le tableau de checkbox, j'ai créé un champ caché qui recupere les id d'eleves, séparés par un espace. Une fois le conteu de ce champ récupéré dans l'autre page, je fais un explode() dessus, ce qui me donne un tableau rempli d'id, je n'ai plus qu'a faire une boucle qui va tourner count(tableau d'id)-1 (la derniere cellule est toujours vide) et pour obtenir les valeurs de mes checkbox, je n'ai qu'a concaténer un mot(Absent, Retard, Present ou Dispense) et l'id et enfin j'ecris ça dans ma bdd.
Je mets le code:
page tableau checkbox:
$classe=$_POST['classe']; $prof=$_POST['prof']; $dates=$_POST['date']; $heures=$_POST['heure']; $sql= "SELECT * FROM liste WHERE classe like '%$classe%' ORDER BY nom"; $reponse = mysql_query($sql) or die('Requete FETCH en echec.'.mysql_error()); echo '<center> Classe du professeur ' . $prof . ' pour l\'heure ' . $heures . ' du '. $dates .'</center>'; echo '<form action="realise.php" method="POST">'; echo '<input type="hidden" name="prof" value="'. $prof .'">'; echo '<input type="hidden" name="date" value="'. $dates .'">'; echo '<input type="hidden" name="heure" value="'. $heures .'">'; echo '<input type="hidden" name="classe" value="'. $classe .'">'; echo '<center><table bgcolor="#FFFFFF">' . "\n"; echo '<tr>'; echo '<h1><center><b>'. $classe .'</b></center></H1>'; echo '</tr>'; echo '<tr>'; echo '<td bgcolor="#669999"><b><u>Nom</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Prénom</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Absent</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Retard</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Présent</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Dispensé</u></b></td>'; echo '</tr>'; $temp=''; $temp1=0; while($row2=mysql_fetch_array($reponse)){ $test= $row2['id']; echo '<tr>'; echo '<td bgcolor="#CCCCCC">'.$row2['nom'].'</td>'; echo '<td bgcolor="#CCCCCC">'.$row2['prenom'].'</td>'; echo '<td bgcolor="#CCCCCC"><center><input type="checkbox" name="Absent' . $test . '" value="Absent"/></center></td>'; echo '<td bgcolor="#CCCCCC"><center><input type="checkbox" name="Retard' . $test . '" value="Retard"/></center></td>'; echo '<td bgcolor="#CCCCCC"><center><input type="checkbox" name="Present' . $test . '" value="Présent"/></center></td>'; echo '<td bgcolor="#CCCCCC"><center><input type="checkbox" name="Dispense' . $test . '" value="Dispensé"/></center></td>'; echo '<tr>'."\n".'</tr>'; echo "</tr>"; $temp=$temp .$test . ' '; $temp1=$temp+1; } echo '</table></center>'; echo '<input type="hidden" name="ids" value="'.$temp.'">'; echo '<input type="hidden" name="nb" value="'.$temp1.'">'; echo '<center><input type="submit" value="OK"></form></center>'; mysql_close(); // Deconnexion de MySQL
page recup (pas finie):
foreach ( $_POST as $post => $val ) { $$post = $val; } // constitution du tableau d'ids et comptage// $liste= explode(' ',$ids); $nbliste=count($liste)-1; $i=0; // initialisation // while($i<$nbliste){ $Absent="Absent".$liste[$i]; $sql="INSERT INTO eleve (id, ide, absence, retard, present, dispense, prof, date, heure) VALUES ('', '$liste[$i]', '$$Absent', '$$Retard', '$$Present', '$$Dispense', '$prof', '$date', '$heure')"; $req=mysql_query($sql) or die ('erreur' . mysql_error()); $i++; }
Problème résolu.
Dans ma page avec le tableau de checkbox, j'ai créé un champ caché qui recupere les id d'eleves, séparés par un espace. Une fois le conteu de ce champ récupéré dans l'autre page, je fais un explode() dessus, ce qui me donne un tableau rempli d'id, je n'ai plus qu'a faire une boucle qui va tourner count(tableau d'id)-1 (la derniere cellule est toujours vide) et pour obtenir les valeurs de mes checkbox, je n'ai qu'a concaténer un mot(Absent, Retard, Present ou Dispense) et l'id et enfin j'ecris ça dans ma bdd.
Je mets le code:
page tableau checkbox:
page recup (pas finie):
Dans ma page avec le tableau de checkbox, j'ai créé un champ caché qui recupere les id d'eleves, séparés par un espace. Une fois le conteu de ce champ récupéré dans l'autre page, je fais un explode() dessus, ce qui me donne un tableau rempli d'id, je n'ai plus qu'a faire une boucle qui va tourner count(tableau d'id)-1 (la derniere cellule est toujours vide) et pour obtenir les valeurs de mes checkbox, je n'ai qu'a concaténer un mot(Absent, Retard, Present ou Dispense) et l'id et enfin j'ecris ça dans ma bdd.
Je mets le code:
page tableau checkbox:
$classe=$_POST['classe']; $prof=$_POST['prof']; $dates=$_POST['date']; $heures=$_POST['heure']; $sql= "SELECT * FROM liste WHERE classe like '%$classe%' ORDER BY nom"; $reponse = mysql_query($sql) or die('Requete FETCH en echec.'.mysql_error()); echo '<center> Classe du professeur ' . $prof . ' pour l\'heure ' . $heures . ' du '. $dates .'</center>'; echo '<form action="realise.php" method="POST">'; echo '<input type="hidden" name="prof" value="'. $prof .'">'; echo '<input type="hidden" name="date" value="'. $dates .'">'; echo '<input type="hidden" name="heure" value="'. $heures .'">'; echo '<input type="hidden" name="classe" value="'. $classe .'">'; echo '<center><table bgcolor="#FFFFFF">' . "\n"; echo '<tr>'; echo '<h1><center><b>'. $classe .'</b></center></H1>'; echo '</tr>'; echo '<tr>'; echo '<td bgcolor="#669999"><b><u>Nom</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Prénom</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Absent</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Retard</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Présent</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Dispensé</u></b></td>'; echo '</tr>'; $temp=''; $temp1=0; while($row2=mysql_fetch_array($reponse)){ $test= $row2['id']; echo '<tr>'; echo '<td bgcolor="#CCCCCC">'.$row2['nom'].'</td>'; echo '<td bgcolor="#CCCCCC">'.$row2['prenom'].'</td>'; echo '<td bgcolor="#CCCCCC"><center><input type="checkbox" name="Absent' . $test . '" value="Absent"/></center></td>'; echo '<td bgcolor="#CCCCCC"><center><input type="checkbox" name="Retard' . $test . '" value="Retard"/></center></td>'; echo '<td bgcolor="#CCCCCC"><center><input type="checkbox" name="Present' . $test . '" value="Présent"/></center></td>'; echo '<td bgcolor="#CCCCCC"><center><input type="checkbox" name="Dispense' . $test . '" value="Dispensé"/></center></td>'; echo '<tr>'."\n".'</tr>'; echo "</tr>"; $temp=$temp .$test . ' '; $temp1=$temp+1; } echo '</table></center>'; echo '<input type="hidden" name="ids" value="'.$temp.'">'; echo '<input type="hidden" name="nb" value="'.$temp1.'">'; echo '<center><input type="submit" value="OK"></form></center>'; mysql_close(); // Deconnexion de MySQL
page recup (pas finie):
foreach ( $_POST as $post => $val ) { $$post = $val; } // constitution du tableau d'ids et comptage// $liste= explode(' ',$ids); $nbliste=count($liste)-1; $i=0; // initialisation // while($i<$nbliste){ $Absent="Absent".$liste[$i]; $sql="INSERT INTO eleve (id, ide, absence, retard, present, dispense, prof, date, heure) VALUES ('', '$liste[$i]', '$$Absent', '$$Retard', '$$Present', '$$Dispense', '$prof', '$date', '$heure')"; $req=mysql_query($sql) or die ('erreur' . mysql_error()); $i++; }