[PHP] input variable dans une boucle
AzRaElDGT
Messages postés
57
Statut
Membre
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Bonjour,
J'ai un p'tit problème au quel je m'attendais...
Voila mon code:
Puis la page "efface.php":
La connections a la base est bonne, mais j'ai pas jugé nécessaire de mettre cette partie.
Les champs <input "url_pub" et "id_pub"> sont de type text pour voir leur contenu, je les mettrais en "hidden" dés que tous marchera.
Mon problème est dans le fond trés prévisible, sur ma 1er page lorsque je clique sur le <input image> je devrais transmettre les valeurs contenues dans les champs "url_id" et "pub_id" en POST vers le formulaire effacer.php.
Et sur ce formulaire je devrais récupérer mes valeurs. ET bah non!!
Lorsque je clique sur mon <input image> et bien que le <input text "id_pub"> affiche l'id du bon enregistrement. Le "echo $id;" de ma page effacer.php m'affiche par défaut l'id du 1er enregistrement mais pas celui sur quelle j'ai cliqué.
Et c'est normal! Puisque a cause de ma boucle dans la 1er page tous les <input text> de mon tableau portent le même nom!
Je pourrais passer par $_GET mais pour des raison de sécuritée évidante je suis vraiment pas chaud!
Mais en $_POST je ne sais pas comment résoudre ce prolème...
Merci d'avance pour vos lumières.
Az
Bonjour,
J'ai un p'tit problème au quel je m'attendais...
Voila mon code:
<form name="effacer" action="effacer.php" method="post" ENCTYPE="multipart/form-data"> <? $req_tabl = 'SELECT * FROM site_resa WHERE pseudo = "'.$var.'" AND date1 >= "'.date("Y-m-d").'" ORDER BY date1'; $req = mysql_query($req_tabl)or die('Erreur SQL !<br>'.$req_tabl.'<br>'.mysql_error()); while ($row=mysql_fetch_array($req)) { echo '<tr onMouseOver ="this.style.background=\'#2C2D37\'" onMouseOut ="this.style.background=\'#40424E\'"> <td align="center">'.$row['4'].'</td> <td align="center">'.$row['5'].'</td> <td align="center">'.$row['7'].'</td> <td align="center">'.$row['8'].'</td> <td align="center">'.$row['9'].'</td> <td align="center"><input type="image" src="./img/6728-vor-Xchat1.png" onmouseover="style.cursor=\'pointer\'"><input type="text" name="id_pub" id="id_pub" value="'.$row['0'].'"><input type="text" name="url_pub" id="url_pub" value="'.$row['10'].'"></td> </tr>'; } ?> </form>
Puis la page "efface.php":
<? $id= $_POST['id_pub']; $url= $_POST['url_pub']; ?> <head> </head> <body> <?php echo $id; unlink($url); mysql_query("DELETE FROM site_resa WHERE ID = ".$id." "); ?> <META HTTP-EQUIV="Refresh" CONTENT="4;URL=./calendrier.php"> </body>
La connections a la base est bonne, mais j'ai pas jugé nécessaire de mettre cette partie.
Les champs <input "url_pub" et "id_pub"> sont de type text pour voir leur contenu, je les mettrais en "hidden" dés que tous marchera.
Mon problème est dans le fond trés prévisible, sur ma 1er page lorsque je clique sur le <input image> je devrais transmettre les valeurs contenues dans les champs "url_id" et "pub_id" en POST vers le formulaire effacer.php.
Et sur ce formulaire je devrais récupérer mes valeurs. ET bah non!!
Lorsque je clique sur mon <input image> et bien que le <input text "id_pub"> affiche l'id du bon enregistrement. Le "echo $id;" de ma page effacer.php m'affiche par défaut l'id du 1er enregistrement mais pas celui sur quelle j'ai cliqué.
Et c'est normal! Puisque a cause de ma boucle dans la 1er page tous les <input text> de mon tableau portent le même nom!
Je pourrais passer par $_GET mais pour des raison de sécuritée évidante je suis vraiment pas chaud!
Mais en $_POST je ne sais pas comment résoudre ce prolème...
Merci d'avance pour vos lumières.
Az
A voir également:
- [PHP] input variable dans une boucle
- Easy php - Télécharger - Divers Web & Internet
- Input signal not found ✓ - Forum Matériel & Système
- Input not supported - Forum Ecran
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
4 réponses
Bonjour,
pour faire des noms dynamiquement il faut passer par des "varaibles variables"
ex:
et pour les recuperer tu fais une boucle sur $_POST en testant ceux qui commencent par 'i_pub' par exemple avec la fonction substr()
Mais une chose me chiffonne comment choisis tu l'élement à supprimer dans ta liste ?
pour faire des noms dynamiquement il faut passer par des "varaibles variables"
ex:
<form name="effacer" action="effacer.php" method="post" ENCTYPE="multipart/form-data"> <?php $req_tabl = 'SELECT * FROM site_resa WHERE pseudo = "'.$var.'" AND date1 >= "'.date("Y-m-d").'" ORDER BY date1'; $req = mysql_query($req_tabl)or die('Erreur SQL !<br>'.$req_tabl.'<br>'.mysql_error()); $i=0; while ($row=mysql_fetch_array($req)){ $name_input_pub=${'id_pub'.$i}; $name_input_url=${'url_pub'.$i}; echo '<tr onMouseOver ="this.style.background=\'#2C2D37\'" onMouseOut ="this.style.background=\'#40424E\'"> <td align="center">'.$row['4'].'</td> <td align="center">'.$row['5'].'</td> <td align="center">'.$row['7'].'</td> <td align="center">'.$row['8'].'</td> <td align="center">'.$row['9'].'</td> <td align="center"><input type="image" src="./img/6728-vor-Xchat1.png" onmouseover="style.cursor=\'pointer\'"><input type="text" name="'.$name_input_pub.'" id="id_pub" value="'.$row['0'].'"><input type="text" name="'.$name_input_url.'" id="url_pub" value="'.$row['10'].'"></td> </tr>'; $i++; } ?> </form>
et pour les recuperer tu fais une boucle sur $_POST en testant ceux qui commencent par 'i_pub' par exemple avec la fonction substr()
Mais une chose me chiffonne comment choisis tu l'élement à supprimer dans ta liste ?
En cliquant sur le input image.
Enfin...! J'espere que c'est possible... puisque l'id que je veux effacer ce trouve dans le champs text "'.$name_input_pub.'" qui corespond à $row['0'].
j'essaie ça de suite
Az
Enfin...! J'espere que c'est possible... puisque l'id que je veux effacer ce trouve dans le champs text "'.$name_input_pub.'" qui corespond à $row['0'].
j'essaie ça de suite
Az