Probleme formulaire liste déroulante
Résolu
nestor94
Messages postés
74
Date d'inscription
Statut
Membre
Dernière intervention
-
nestor94 Messages postés 74 Date d'inscription Statut Membre Dernière intervention -
nestor94 Messages postés 74 Date d'inscription Statut Membre Dernière intervention -
Bonjour, ce formulaire ne renvoie rien. Ca doit etre simple mais je ne trouve pas la soluce.
J'ai essayé avec un input type="select" cela rajoute un champ vide et l'option choisie n'est toujours pas mise a jour en bdd.
<table> <td> <form name="form" method="post" action=" " enctype="multipart/form-data"> <p> <label for="choix"><b>CHOIX:</b></label> <select> <option value="contenant">CONTENANT</option> <option value="contenu">CONTENU</option> <option value="objet1">OBJET1</option> <option value="objet2">OBJET2</option> <option value="objet3">OBJET3</option> <option value="vehicule">VEHICULE</option> </select> </p> <div align="center"> <br> <input type="submit" name="choix" value="VALIDER" /> </td> </div> </form>
J'ai essayé avec un input type="select" cela rajoute un champ vide et l'option choisie n'est toujours pas mise a jour en bdd.
A voir également:
- Probleme formulaire liste déroulante
- Liste déroulante excel - Guide
- Whatsapp formulaire opposition - Guide
- Liste déroulante en cascade - Guide
- Formulaire de réclamation facebook - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
9 réponses
<form name="form" method="post" action=" " enctype="multipart/form-data"> <p> <label for="choix"><b>CHOIX:</b></label> <select name="choix"> <option value="contenant">CONTENANT</option> <option value="contenu">CONTENU</option> <option value="objet1">OBJET1</option> <option value="objet2">OBJET2</option> <option value="objet3">OBJET3</option> <option value="vehicule">VEHICULE</option> </select> </p> <div align="center"> <br> <input type="submit" name="choix" value="VALIDER" /> </td> </div> </form>
la mise à jour ne se fait toujours pas.
Vide ton cache
Et ajoute, au début de ton script php, un var_dump($_POST); pour nous montrer ce que ça te donne.
Par contre tu parles de mise à jour .... de quoi parles tu ? Ici il n'est question que de l'envoi de la valeur d'un select en POST .. pas de mises à jour !
Tu verras que tu as mis le même nom sur ton bouton et ton form.. il ne faut pas;
NB: Tu peux aussi retirer le enctype="multipart/form-data" vu que tu n'envoies pas de fichier
NB² : Dans l'attribut action, retire l'espace que tu as entre les quotes
NB3 : Tu as quoi d'autre comme code dans ta page ..??
Et ajoute, au début de ton script php, un var_dump($_POST); pour nous montrer ce que ça te donne.
Par contre tu parles de mise à jour .... de quoi parles tu ? Ici il n'est question que de l'envoi de la valeur d'un select en POST .. pas de mises à jour !
Tu verras que tu as mis le même nom sur ton bouton et ton form.. il ne faut pas;
NB: Tu peux aussi retirer le enctype="multipart/form-data" vu que tu n'envoies pas de fichier
NB² : Dans l'attribut action, retire l'espace que tu as entre les quotes
NB3 : Tu as quoi d'autre comme code dans ta page ..??
Cache vidé.
Tous les var_dump($_POST) sont OK.
enctype="multipart/form-data" supprimé.
espace dans "action" supprimé.
voici le script (épuré)
Tous les var_dump($_POST) sont OK.
enctype="multipart/form-data" supprimé.
espace dans "action" supprimé.
voici le script (épuré)
<?php session_start(); require_once 'config.php'; $id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL; $sql = "SELECT decouverte FROM membres WHERE id=:id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); $resultat = $pdostat->fetch(); $decouverte = $resultat['decouverte']; $sql = "SELECT item, usure_item, qte_item FROM map LEFT JOIN membres ON map.pos_x = membres.pos_x AND map.pos_y = membres.pos_y WHERE membres.id= $id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); $resultat = $pdostat->fetch(); $item = $resultat['item']; $usure_item = $resultat['usure_item']; $qte_item = $resultat['qte_item']; if(isset($_POST['choix'])) { $contenant = !empty($_POST['CONTENANT']) ? trim($_POST['CONTENANT']) : NULL; $sql = "UPDATE membres SET contenant = '$item', usure_contenant= '$usure_item' WHERE id =:id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); $contenu_contenant = !empty($_POST['CONTENU']) ? trim($_POST['CONTENU']) : NULL; $sql = "UPDATE membres SET contenu_contenant = '$item', qte_contenant= '$qte_item' WHERE id =:id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); $objet1 = !empty($_POST['OBJET1']) ? trim($_POST['OBJET1']) : NULL; $sql = "UPDATE membres SET objet1 = '$item', usure_objet1= '$usure_item' WHERE id =:id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); $objet2 = !empty($_POST['OBJET2']) ? trim($_POST['OBJET2']) : NULL; $sql = "UPDATE membres SET objet2 = '$item', usure_objet2 = '$usure_item' WHERE id =:id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); $objet3 = !empty($_POST['OBJET3']) ? trim($_POST['OBJET3']) : NULL; $sql = "UPDATE membres SET objet3 = '$item', usure_objet3= '$usure_item' WHERE id =:id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); $vehicule = !empty($_POST['VEHICULE']) ? trim($_POST['VEHICULE']) : NULL; $sql = "UPDATE membres SET vehicule = '$item', usure_vehicule= '$usure_item' WHERE id =:id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); header('Location:page_membre.php'); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>trouvaille</title> </head> <body> <table> <td> <form name="form" method="post" action="" enctype="multipart/form-data"> <p> <label for="choix"><b>DEPLACER:</b></label> <select name="déplacer"> <option value="contenant">CONTENANT</option> <option value="contenu">CONTENU</option> <option value="objet1">OBJET1</option> <option value="objet2">OBJET2</option> <option value="objet3">OBJET3</option> <option value="vehicule">VEHICULE</option> </select> </p> <div align="center"> <br> <input type="submit" name="choix" value="VALIDER" /> </td> </div> </form> </td> </table> <br><br><br><a href="page_membre.php">vers page membre</a></center> </body> </html>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ah oui, le é de déplacer !
Mais ca ne fonctionne toujours pas !
Mais ca ne fonctionne toujours pas !
C:\wamp64\www\action_trouvaille.php:27:
array (size=2)
'déplacer' => string 'contenant' (length=9)
'choix' => string 'VALIDER' (length=7)
C:\wamp64\www\action_trouvaille.php:27:
array (size=2)
'déplacer' => string 'contenu' (length=7)
'choix' => string 'VALIDER' (length=7)
C:\wamp64\www\action_trouvaille.php:27:
array (size=2)
'déplacer' => string 'objet1' (length=6)
'choix' => string 'VALIDER' (length=7)
etc
array (size=2)
'déplacer' => string 'contenant' (length=9)
'choix' => string 'VALIDER' (length=7)
C:\wamp64\www\action_trouvaille.php:27:
array (size=2)
'déplacer' => string 'contenu' (length=7)
'choix' => string 'VALIDER' (length=7)
C:\wamp64\www\action_trouvaille.php:27:
array (size=2)
'déplacer' => string 'objet1' (length=6)
'choix' => string 'VALIDER' (length=7)
etc
Donc le choix que tu fais dans ta liste deroulante est bien transmise en post.
C'était bien là le problème initial de ta question... Et donc c'est résolu...
Si tu rencontres un autre souci, merci d'expliquer en détail ce qui ne fonctionne pas selon toi et précise nous quelle partie du code exactement est concernée.
C'était bien là le problème initial de ta question... Et donc c'est résolu...
Si tu rencontres un autre souci, merci d'expliquer en détail ce qui ne fonctionne pas selon toi et précise nous quelle partie du code exactement est concernée.
Ouais je comprends mieux pourquoi ça fonctionne pas ton histoire là...
Tu fais des UPDATE sur des POSTS de value="" au lieu des name="" pour ton script PHP ça ne peux pas marcher comme ça.
Tout d'abord entre la ligne 20 et 58, tu lui demande de faire un UPDATE en fonction d'un POST non empty des lignes 73 à 78 et ça c'est faux. Le POST veut des name="" pas des value="" qui elles servent d'information à transmettre dans le POST mais elles ne peuvent pas être le POST lui-même.
Tu peux effacer toutes les lignes de 27 à 55. Ne garde qu'une seule requête et change juste la variable "CONTENANT" pour "déplacer" à la ligne 21 qui prendra le name="déplacer" du <select> qui se trouve à la ligne 72. de plus je te conseille de virer l'accent également.
Après à la ligne 22 j'sais pas comment t'as fait ta bdd et je capte pas trop ton histoire du $item est-ce que tu peux me faire un screenshot de ta bdd que j'puisse voir les colonnes pour mieux capter ce que tu cherches à faire avec ton p'tit PHP ? Merci.
Tu fais des UPDATE sur des POSTS de value="" au lieu des name="" pour ton script PHP ça ne peux pas marcher comme ça.
Tout d'abord entre la ligne 20 et 58, tu lui demande de faire un UPDATE en fonction d'un POST non empty des lignes 73 à 78 et ça c'est faux. Le POST veut des name="" pas des value="" qui elles servent d'information à transmettre dans le POST mais elles ne peuvent pas être le POST lui-même.
Tu peux effacer toutes les lignes de 27 à 55. Ne garde qu'une seule requête et change juste la variable "CONTENANT" pour "déplacer" à la ligne 21 qui prendra le name="déplacer" du <select> qui se trouve à la ligne 72. de plus je te conseille de virer l'accent également.
Après à la ligne 22 j'sais pas comment t'as fait ta bdd et je capte pas trop ton histoire du $item est-ce que tu peux me faire un screenshot de ta bdd que j'puisse voir les colonnes pour mieux capter ce que tu cherches à faire avec ton p'tit PHP ? Merci.
Pour ce qui est du $item, laisse tomber je me suis planté avec le script précédent. Voila ce que j'ai corrigé.
le soucis, c'est que le form est une liste déroulante. Et tel quel, cela ne fonctionne que pour un cas (en l'occurence "CONTENANT")
Quel autre code pour updater par exemple le choix "OBJET1" ?
<?php session_start(); require_once 'config.php'; include 'verif_PA.php'; $id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL; $sql = "SELECT decouverte FROM membres WHERE id=:id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); $resultat = $pdostat->fetch(); $decouverte = $resultat['decouverte']; if(isset($_POST['choix'])) { $contenant = !empty($_POST['deplacer']) ? trim($_POST['deplacer']) : NULL; $sql = "UPDATE membres SET contenant = '$decouverte' WHERE id =:id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); header('Location:page_membre.php'); } ?> <b>VOTRE TROUVAILLE</b> <br><br><br><?php echo '<img src="'.$decouverte.'">';?> <br><br> <table> <td> <form name="form" method="post" action=""> <p> <label for="choix"><b>DEPLACER VERS:</b></label> <select name="deplacer"> <option value="contenant">CONTENANT</option> <option value="contenu">CONTENU</option> <option value="objet1">OBJET1</option> <option value="objet2">OBJET2</option> <option value="objet3">OBJET3</option> <option value="vehicule">VEHICULE</option> </select> </p> <div align="center"> <br> <input type="submit" name="choix" value="VALIDER" />
le soucis, c'est que le form est une liste déroulante. Et tel quel, cela ne fonctionne que pour un cas (en l'occurence "CONTENANT")
Quel autre code pour updater par exemple le choix "OBJET1" ?
Je vois,
Entre la ligne 14 et 15 il faut mettre un if voici un exemple:
Attention dans la ligne 33 ce que retourne le POST c'est value="objet1" et non pas ce qui est entre les balises <option>"OBJET1"</option> donc ton IF == doit être objet1 et non pas OBJET1. à bien noter même si c'est une question de majuscule.
Entre la ligne 14 et 15 il faut mettre un if voici un exemple:
if($_POST['deplacer'] == "objet1") {Là tu fais l'UPDATE SET en fonction de cette valeur}
Attention dans la ligne 33 ce que retourne le POST c'est value="objet1" et non pas ce qui est entre les balises <option>"OBJET1"</option> donc ton IF == doit être objet1 et non pas OBJET1. à bien noter même si c'est une question de majuscule.
Merci beaucoup KrondaliX !
Ca fonctionne impeccable.
Ca fonctionne impeccable.
<?php session_start(); require_once 'config.php'; include 'verif_PA.php'; $id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL; $sql = "SELECT decouverte FROM membres WHERE id=:id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); $resultat = $pdostat->fetch(); $decouverte = $resultat['decouverte']; if(isset($_POST['choix'])) { $contenant = !empty($_POST['deplacer']) ? trim($_POST['deplacer']) : NULL; if($_POST['deplacer'] == "contenant") { $sql = "UPDATE membres SET contenant = '$decouverte', decouverte= '/objets/rien.gif', usure_decouverte = 0 WHERE id =:id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); header('Location:page_membre.php'); } if($_POST['deplacer'] == "contenu") { $sql = "UPDATE membres SET contenu = '$decouverte', decouverte= '/objets/rien.gif', usure_decouverte = 0 WHERE id =:id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); header('Location:page_membre.php'); } if($_POST['deplacer'] == "objet1") { $sql = "UPDATE membres SET objet1 = '$decouverte', decouverte= '/objets/rien.gif', usure_decouverte = 0 WHERE id =:id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); header('Location:page_membre.php'); } if($_POST['deplacer'] == "objet2") { $sql = "UPDATE membres SET objet2 = '$decouverte', decouverte= '/objets/rien.gif', usure_decouverte = 0 WHERE id =:id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); header('Location:page_membre.php'); } if($_POST['deplacer'] == "objet3") { $sql = "UPDATE membres SET objet3 = '$decouverte', decouverte= '/objets/rien.gif', usure_decouverte = 0 WHERE id =:id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); header('Location:page_membre.php'); } if($_POST['deplacer'] == "vehicule") { $sql = "UPDATE membres SET vehicule = '$decouverte', decouverte= '/objets/rien.gif', usure_decouverte = 0 WHERE id =:id"; $pdostat = $bdd->prepare($sql); $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT); $pdostat->execute(); header('Location:page_membre.php'); } } ?>