Remplir input en fonction de <select > php mysql

Fermé
ookahh1 Messages postés 61 Date d'inscription lundi 11 octobre 2010 Statut Membre Dernière intervention 2 octobre 2013 - Modifié par pijaku le 24/02/2014 à 10:50
 daggoon - 23 févr. 2014 à 14:43
Bonjour, je suis entain de developper une appliacation de gestion de stock avec une base mysql et php et voilà que je vraiment bloqué.

Je voudrais que pour la saisie de la commande d'un client lorsque l'utilisateur selectionne le nom du materiel dans un select relié à la la base de données, le prix de ce dernier doit s'affiche automatiquement dans un input

voici le code que j'utilise:

<select name="des" id="des">

<?php


$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("bd", $con);
$req = "SELECT des_mat ".
"FROM materiel " ;
$ret = mysql_query ($req) or die (mysql_error ());


while ( $col = mysql_fetch_row ($ret) )
{
echo '<option value="'.$col[0].'">'.$col[0].'</option>';
}


?>
</select>

ce code m'affiche la liste de tous le materiel
Mon problème est comment afficher le prix qui est la colonne 'pu' dans ma base, dans un champs de text input Merci

5 réponses

ookahh1 Messages postés 61 Date d'inscription lundi 11 octobre 2010 Statut Membre Dernière intervention 2 octobre 2013 1
2 oct. 2013 à 10:45
Merci Pitet pour ta reponse mais je n'arrive pas a afficher les prix des le input .

la liste des materiel s'affiche bien mais lorsque je selectionne le prix ne sort pas.
1
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié par Pitet le 30/09/2013 à 15:55
Salut,

Si le prix unitaire se trouve dans la même table sql, tu peux commencer par récupérer cette colonne dans ta requête :

$req = "SELECT des_mat, pu FROM materiel";

Ensuite tu définis le prix pour chaque ligne de ton select avec un attribut personnalisé :

while ( $col = mysql_fetch_row ($ret) )
{
echo '<option value="' . $col[0] . '" data-pu="' . $col[1] . '">' . $col[0] . '</option>';
}

Enfin tu utilises javascript pour afficher le PU lorsqu'une ligne est sélectionnée. Voici un exemple complet avec jQuery :

<select id="des">
<option value="1" data-pu="15">1</option>
<option value="2" data-pu="30">2</option>
<option value="3" data-pu="45">3</option>
</select>

<input type="text" id="pu" />

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
$('#des').change(function() {
var pu = $('#des option:selected').first().attr('data-pu');
$('#pu').val(pu);
});
</script>

Bonne journée
0
ookahh1 Messages postés 61 Date d'inscription lundi 11 octobre 2010 Statut Membre Dernière intervention 2 octobre 2013 1
2 oct. 2013 à 11:21
Finalement j'ai décidé de laisser l'option du menu deroulant pour utiliser un lien.
c'est à dire j'affiche mes données avec ma requete et quand je clic sur le nom du materiel cela s'affiche dans un champs pareil pour le prix egalement.

pourais tu m'aider à trouver quelque chose?
0
ookahh1 Messages postés 61 Date d'inscription lundi 11 octobre 2010 Statut Membre Dernière intervention 2 octobre 2013 1
Modifié par pijaku le 24/02/2014 à 10:51
Merci pour ton aide Pitet . j'ai finalement trouver quelque chose avec les liens en php et javascript



<input id="id_champ" name="des" >

<?php

$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("db", $con);
$req = "SELECT des_mat, pu FROM materiel " ;
$ret = mysql_query ($req) or die (mysql_error ());
while ( $col = mysql_fetch_row ($ret) )
{

echo '<a href="#" onclick="affiche(\''.$col[0].'\');">'.$col[0].'</a>';

echo '<br>';
}
?>


puis l'affichage avec javascript

<script type="text/javascript">
function affiche(tag)
{
 msgfield = document.getElementById("id_champ");
 
 msgfield.value = tag ;
        msgfield.focus();
}
</script>


et ça marche!!!!!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ca marche avec ce code là... faut juste retirer .first


<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
$('#des').change(function() {
var pu = $('#des option:selected').attr('data-pu');
$('#pu').val(pu);
});
</script>
0