Récupérer les données d'une liste déroulante dans un champs input text
PatrickMoustache
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
PatrickMoustache Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
PatrickMoustache Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Voici pas mal de temps que je planche sur un problème sans parvenir à le résoudre malgré de nombreuses recherches sur différents forums :
J'ai un formulaire constitué d'un <select> qui récupère une liste de produits dans une base mysql et de 3 input type="text" (Produit, Prix, Code TVA). Je souhaiterais que lorsque je sélectionne un produit dans ma liste déroulante, le produit, le prix et le code TVA s'affichent dans les champs des input correspondants afin d'éventuellement pouvoir les modifier (si le prix change par exemple). Ces données seront ensuite traitées dans un autre fichier .php.
Après un nombre incalculable d'essais, voici le code qui me paraissait le plus logique, et qui évidemment ne fonctionne pas. Mes champs restent désespérément vides (Ceci est un fichier de test, c'est la raison pour laquelle l'aspect sécurité n'est pas géré) :
Je vous remercie par avance de l'aide que vous pourrez m'apporter.
Bien cordialement !
Patrick.
Voici pas mal de temps que je planche sur un problème sans parvenir à le résoudre malgré de nombreuses recherches sur différents forums :
J'ai un formulaire constitué d'un <select> qui récupère une liste de produits dans une base mysql et de 3 input type="text" (Produit, Prix, Code TVA). Je souhaiterais que lorsque je sélectionne un produit dans ma liste déroulante, le produit, le prix et le code TVA s'affichent dans les champs des input correspondants afin d'éventuellement pouvoir les modifier (si le prix change par exemple). Ces données seront ensuite traitées dans un autre fichier .php.
Après un nombre incalculable d'essais, voici le code qui me paraissait le plus logique, et qui évidemment ne fonctionne pas. Mes champs restent désespérément vides (Ceci est un fichier de test, c'est la raison pour laquelle l'aspect sécurité n'est pas géré) :
<form action="test_traitement.php" method="post">
<label for="select">Sélectionner un nom à modifier ou ajouter un nouveau nom : </label><br>
<select name="select" id="select">
<option value=""></option>
<?php
$conn = new PDO ('mysql:host=localhost;dbname=test' , 'root' , 'root');
$req = $conn->query('SELECT * FROM produits ORDER BY produits');
// Je crée un tableau associatif avec des valeurs vides
$value_input = array(
'produits' => "",
'prix' => "",
'tva' => "");
// Je parcoure le tableau dont je récupère les valeurs pour les stocker dans mon tableau
while ($res = $req->fetch()) {
echo "<option class='opt' value=" . $res['id'] . ">" . $res['produits'] . "</option>";
if ( $_POST['select'] == $res['id'] ) {
$value_input['produits'] = $res['produits'];
$value_input['prix'] = $res['prix'];
$value_input['tva'] = $res['tva'];
}
}
?>
</select><br>
<!-- Je cherche à afficher les valeurs de mon tableau associatif dans les value de mes input -->
<label for="nom">Produit : </label><input type="text" name="nom" value="<?php echo "$value_input[produits]";?>"/><br>
<label for="prenom">Prix : </label><input type="text" name="prenom" value="<?php echo "$value_input[prix]";?>"/><br>
<label for="nom">Code TVA : </label><input type="text" name="ville" value="<?php echo "$value_input[tva]";?>"/><br>
<input type="submit" name="add" value="Enregistrer">
</form>
Je vous remercie par avance de l'aide que vous pourrez m'apporter.
Bien cordialement !
Patrick.
A voir également:
- Récupérer les données d'une liste déroulante dans un champs input text
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Comment récupérer un document dans le presse-papier samsung - Guide
- Comment récupérer un compte facebook piraté - Guide
1 réponse
Bonjour,
Si je comprends bien... tu voudrais alimenter tes INPUT au moment de la selection dans ta liste déroulante ?
Dans ce cas... ça ne peut pas se faire en php.
Je rappelle que PHP s'éxécute côté SERVEUR. le code ne sera donc exécuté qu'àprès un appel à la page ou un SUBMIT.
Pour modifier le contenu des champs html sans recharger la page...seul le Javascript permet de le faire.
Donc, soit tu stockes ton "array" dans une variable JS que tu utilises ensuite pour renseigner les champs voulus... soit (et c'est ce que je ferai....) tu utilises de l'ajax.
Voici des exemples :
https://codes-sources.commentcamarche.net/source/102253-exemple-ajax-en-jquery
et Il y en a des millions d'autres sur le net au cas où.
Si je comprends bien... tu voudrais alimenter tes INPUT au moment de la selection dans ta liste déroulante ?
Dans ce cas... ça ne peut pas se faire en php.
Je rappelle que PHP s'éxécute côté SERVEUR. le code ne sera donc exécuté qu'àprès un appel à la page ou un SUBMIT.
Pour modifier le contenu des champs html sans recharger la page...seul le Javascript permet de le faire.
Donc, soit tu stockes ton "array" dans une variable JS que tu utilises ensuite pour renseigner les champs voulus... soit (et c'est ce que je ferai....) tu utilises de l'ajax.
Voici des exemples :
https://codes-sources.commentcamarche.net/source/102253-exemple-ajax-en-jquery
et Il y en a des millions d'autres sur le net au cas où.
Je viens d'ouvrir le zip !
Euh, comment dire... J'en ai pour quelques jours à comprendre tout ça !!! :)
Merci quand même pour ce travail !
C'est vrai que mon code est un peu compliqué...
Par exemple :
http://memo-web.fr/categorie-ajax-2/
et un tuto sur le sujet :
https://openclassrooms.com/fr/courses/1567926-un-site-web-dynamique-avec-jquery/1569648-le-fonctionnement-de-ajax