Prbleme de "value" sur un <input=hidd
Résolu
moicjm
Messages postés
271
Date d'inscription
Statut
Membre
Dernière intervention
-
moicjm Messages postés 271 Date d'inscription Statut Membre Dernière intervention -
moicjm Messages postés 271 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai fait une boucle pour afficher tous les élements de base de données et envoyer les modifiications via un formulaires. Normalement, le formulaire envoie sur la page ok.php les variables $_POST['traiter'] et $_POST['numeroid'].
Je ne comprends pas ce qui ne va pas dans mon 2nd <input=hidden>, car il n'envoie pas la valeur de $id :
Sauriez vous me dire ce qu'il se passe.. Merci d'avance !
J'ai fait une boucle pour afficher tous les élements de base de données et envoyer les modifiications via un formulaires. Normalement, le formulaire envoie sur la page ok.php les variables $_POST['traiter'] et $_POST['numeroid'].
Je ne comprends pas ce qui ne va pas dans mon 2nd <input=hidden>, car il n'envoie pas la valeur de $id :
<form method="post" action="ok.php"> <input type="hidden" name="traiter" value="o"> <p class="black"><?php echo $id;?></p> <input type="hidden" name="numeroid" value="coucou <?php echo "$id"; ?>"> <input type="submit" value="Vu !"> <p class="black"><?php echo $id;?></p> </form>
Sauriez vous me dire ce qu'il se passe.. Merci d'avance !
A voir également:
- Prbleme de "value" sur un <input=hidd
- Input not supported - Forum Ecran
- The input value is invalid. - Forum Javascript
- No video input - Forum Windows
- [ NO VIDEO INPUT ENTER SLEEP MODE] - Forum PC portable
- The input value is invalid. pdf ✓ - Forum Webmastering
4 réponses
Il y a une grosse faute
tu a écrit
au lieu d'écrire
tu dois enlever les "
et personellement je préfère écrire comme ceci (avec la concaténation)
Je trouve ça plus lisible mais bon, fais comme tu veux :p
tu a écrit
<input type="hidden" name="numeroid" value="coucou <?php echo "$id"; ?>">
au lieu d'écrire
<input type="hidden" name="numeroid" value="coucou <?php echo $id; ?>">
tu dois enlever les "
et personellement je préfère écrire comme ceci (avec la concaténation)
<input type="hidden" name="numeroid" value="<?php echo 'coucou '.$id ;?>">
Je trouve ça plus lisible mais bon, fais comme tu veux :p
Peut tu mettre le code de la page ok.php ?
Bjr,
il est très simple et me servait surtout à voir si les variables étaient bien transmises... (merci !)
il est très simple et me servait surtout à voir si les variables étaient bien transmises... (merci !)
<?php if (isset($_POST['traiter'])) { $traiter = $_POST['traiter']; $numid = $_GET['numid']; } else { $traiter = "variable à fixer"; $numid = "numero non transmis"; } ?> La variable est : <?php echo $traiter; ?> <br> Le numéro est : <?php echo $numid; ?> <br><br>
Je crois savoir pourquoi, il y a confusion dans tes donnée parce que tu a mis ton </form> après le while
essaye en fermant la balise form juste après ton formulaire
oublie pas de supprimer le <form> tout en bas de ton code
essaye en fermant la balise form juste après ton formulaire
<p class="black"><?php echo $id;?></p> <form method="post" action="ok.php?numid=coucou<?php echo $id; ?>"> <input type="hidden" name="traiter" value="o"> <p class="black"><?php echo $id;?></p> <input type="hidden" name="numeroid" value="<?php echo 'coucou '.$id ;?>"> <input type="submit" value="Vu !"> <p class="black"><?php echo $id;?></p> </form>
oublie pas de supprimer le <form> tout en bas de ton code
Si tu le sors de la boucle, $id que tu enverra par POST sera le dernier (donc ici 23)
si tu le met a l'intérieur alors tu enverra celui que tu a sélectionné.
il y a une astuce qu'on utilise en mettant le </form> après la boucle, c'est pour envoyer plusieur information en même temps (ici plusieur numéro)
mais alors tu dois changer ton nom de l'input contenant le numéro par un nom + un chiffre que tu incrémente a chaque tour.
exemple
C'est le code que j'ai fais pour afficher un panier virtuel (j'utilise ici les SESSION)
lorsqu'on clique sur valider, on a donc : (sa se complique :p)
voila en gros a quoi sert de mettre le "</form>" a l'extérieur :)
a+ :D
si tu le met a l'intérieur alors tu enverra celui que tu a sélectionné.
il y a une astuce qu'on utilise en mettant le </form> après la boucle, c'est pour envoyer plusieur information en même temps (ici plusieur numéro)
mais alors tu dois changer ton nom de l'input contenant le numéro par un nom + un chiffre que tu incrémente a chaque tour.
exemple
$n = 1; $numLine = 1; $prixtot = 0; if (isset($_SESSION['compteur'.$n])) { //Pagination include ('../includes/pagination.php'); ?> <form method="POST" action=""> <table> <tr> <th>Nom</th> <th>Prix unitaire</th> <th>Quantité</th> <th>Prix total</th> </tr> <?php while (isset($_SESSION['compteur'.$n])) { ?> <tr> <td><?php echo $_SESSION['nom_produit'.$n];?></td> <td><?php echo $_SESSION['prix'.$n].' €';?></td> <td><?php echo '<input type="text" style="text-align:center;" class="formulaire" name="nombre_produit' . $numLine . '" value="'.$_SESSION['nbr_achat'.$n].'" />';?></td> <td><?php echo $_SESSION['prix'.$n] * $_SESSION['nbr_achat'.$n].' €';?></td> <td><a href="?page=commander&mod=<?php echo $_SESSION['id_produit'.$n];?>"></a></td> </tr> <?php $prix = $_SESSION['prix'.$n] * $_SESSION['nbr_achat'.$n]; $prixtot = $prix + $prixtot; //Incrémentation $numLine++; $n++; } ?> <tr> <td></td> <td><input type="submit" name="recalculer" value="recalculer" /></td> <td>Total :</td> <td><?php echo $prixtot.' €';?></td> <tr> <tr> <td colspan="5"><input type="submit" name="valider" value="valider" /></td> </tr> </table> </form>
C'est le code que j'ai fais pour afficher un panier virtuel (j'utilise ici les SESSION)
lorsqu'on clique sur valider, on a donc : (sa se complique :p)
$n = 1; for ($numLine = 1; isset($_POST['nombre_produit'.$numLine]); $numLine++) { $id_produit = $_SESSION['id_produit'.$n]; $nom_produit = $_SESSION['nom_produit'.$n]; $prix = $_SESSION['prix'.$n]; $nbr_achat = $_SESSION['nbr_achat'.$n]; $taille = $_SESSION['taille'.$n]; $couleur = $_SESSION['couleur'.$n]; $result = mysql_query("INSERT INTO ..."); $n++; }
voila en gros a quoi sert de mettre le "</form>" a l'extérieur :)
a+ :D
J'avais en effet, entre temps, vu le coup des "..."
Malheureusement, ca ne marche pas mieux. C'est tres bizarre, et je ne comprends vraiment pas ce qu'il se passe.
En gros, il s'agit de lire, comme si c'était un livre d'or, les mails que les internautes me laissent en ligne.
J'ai fait une boucle pour appeler, donc, toute la base de donnée.
Le formulaire me sert à marquer les messages lus, comme étant lus. Tres pratique.
Le probleme : à chaque fois, au lieu de transmettre la variable $id qui vaut la valeur du numéro du message, cela renvoie la valeur du dernier message.
Exemple : j'ai les messages 1, 2, 3, ... , 23. Dans mon tableau, j'ai pour chaque message :
- le numéro du message
- le contenu du message
- une image vert ou rouge (pour marquer comme lu en vert ou non lu en rouge)
- le bouton "lu" pour marquer comme lu
Figurez vous que chaque message affiche le bon numéro :
<p class="black"><?php echo $id;?></p>
Mais que le formulaire n'envoie pas le numéro, mais à chaque fois le numéro 23.
Je mets le code :