Récupérer les bonne données dans un input

Résolu/Fermé
thibautB Messages postés 140 Date d'inscription jeudi 7 mai 2015 Statut Membre Dernière intervention 26 octobre 2016 - Modifié par f0xi le 4/01/2016 à 22:16
thibautB Messages postés 140 Date d'inscription jeudi 7 mai 2015 Statut Membre Dernière intervention 26 octobre 2016 - 5 janv. 2016 à 21:50
Bonjour,

voila j'ai un problème enfaite jai une liste déroulante réliée à ma bdd contenant mes libéllé et j'aimerai que quand je clique sur un libéllé qu'il me ressorte dans mes input le bon id et libéllé
voila le code de la liste déroulante :
<form method="post" action="test2.php" id="id_form">
    <select onchange="document.getElementById('id_form').submit()" name="choix">
<?php
    $liendb = mysqli_init();

    $connex = mysqli_real_connect($liendb, "localhost", "root","","gsb");

    $requete = 'select lfhf_id, lfhf_libelle from lignefraishorsforfait';

    $reponse = mysqli_query($liendb,$requete);



    while($ligne = mysqli_fetch_array($reponse))
    {
        $resultat = '<option value="'.$_SESSION['lfhf_libelle'].'">'.$ligne['lfhf_libelle'].'</option>';
        echo $resultat;
        $_SESSION['id'] = $ligne['lfhf_id'];
        $_SESSION['libelle'] = $ligne['lfhf_libelle'];


    }

    mysqli_close($liendb);

    ?>
    </select>
</form>


et le code de mes inputs :

<?php
if(isset($_POST['choix'])) {
    ?>
    <form method="post">
        <label>id : </label><input type="text" value="<?php echo $_SESSION['id']; ?>">
        <label>libelle : </label><input type="text" value="<?php echo $_SESSION['libelle']; ?> ">
    </form>
    <?php

}
session_destroy();
?>

5 réponses

faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 20
23 déc. 2015 à 00:28
En gros tu veux une actualisation de la page au clique sur un objet de la liste?
0
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 20
23 déc. 2015 à 00:40
            <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).on("change", "#liste", function(){
select = document.getElementById("liste");
choice = select.selectedIndex;
valeur_cherchee = select.options[choice].value;
var url = 'majfunction.php?code_film='+valeur_cherchee;
$.post(url, function(data){
$('#modif').html(data);
});
});
</script>

#modif est la div dans laquelle apparaîtra, dans mon cas elle était vide de base, et le code apparaissait après
var url = 'majfunction.php?code_film='+valeur_cherchee;
dans mon cas, la page utilisait un autre fichier php, qui marche avec la méthode GET, d'où le code_film=, qui était GET par cette page

Bref, en principe tu dois changer l'url, par un autre fichier php à toi, qui utilise la méthode GET (ou autre, moi j'avais été au plus simple)
et dans la div #modif, ou le nom que tu lui donnes, il y aura le résultat aprés selection dans la liste, ma liste était :
<select id="liste" name="liste">

d'où le #liste en au du script
(#modif, #liste, url= ) sont les seuls choses à changer

Pour le point culture, on appelle cette méthode de rafraîchissement Ajax :)

Bonne nuit
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
Modifié par jordane45 le 23/12/2015 à 03:56
Bonjour,

Pourquoi vouloir faire de l'ajax?
La question est : A partir d'un SELECT .. remplir deux input...

Ceci devrait suffir :
<select name="choix" onchange="actualiseInputs();">
<?php
    $liendb = mysqli_init();
    $connex = mysqli_real_connect($liendb, "localhost", "root","","gsb");
    $requete = 'select lfhf_id, lfhf_libelle from lignefraishorsforfait';
    $reponse = mysqli_query($liendb,$requete);

    while($ligne = mysqli_fetch_array($reponse)) {
      $resultat = '<option value="'.$_SESSION['lfhf_libelle'].'">'.$ligne['lfhf_libelle'].'</option>';
      echo $resultat;
    }

    mysqli_close($liendb);
    ?>
    </select>

<form method="post" action="">
    <label>id : </label><input  id='input_id' type="text" value="">
    <label>libelle : </label><input id='input_libelle'  type="text" value="">
</form>

<script type="text/javascript">
function actualiseInputs(){
 //récupération des valeurs
 var select = document.getElementById("choix");
  var choice = select.selectedIndex;  
  var id = select.options[choice].value
 var libelle = choice.options[choice.selectedIndex].text;
 
 //remplissage des inputs
 var input_id = document.getElementById('input_id');
    input_id.value =id;
 var input_libelle = document.getElementById('input_libelle');
     input_libelle.value =libelle;
 
}

</script>







Cordialement, 
Jordane                                                                 
0
thibautB Messages postés 140 Date d'inscription jeudi 7 mai 2015 Statut Membre Dernière intervention 26 octobre 2016 1
23 déc. 2015 à 11:57
ok j'ai comprit ce script mais ce script on le met dans qu'elle page la ou il y 'a la liste deroulante ou la ou il y'a les inputs?
0
thibautB Messages postés 140 Date d'inscription jeudi 7 mai 2015 Statut Membre Dernière intervention 26 octobre 2016 1
23 déc. 2015 à 12:18
et j'ai tester ta solution mais rien ne s'affiche
voici le code :
<form method="post" action="" id="id_form">
<select onchange="actualiseinput()" name="choix">
<?php
$liendb = mysqli_init();

$connex = mysqli_real_connect($liendb, "localhost", "root","","gsb");

$requete = 'select lfhf_id, lfhf_libelle from lignefraishorsforfait';

$reponse = mysqli_query($liendb,$requete);



while($ligne = mysqli_fetch_array($reponse))
{
$resultat = '<option value="'.$_SESSION['lfhf_libelle'].'">'.$ligne['lfhf_libelle'].'</option>';
echo $resultat;
$_SESSION['id'] = $ligne['lfhf_id'];
$_SESSION['libelle'] = $ligne['lfhf_libelle'];


}

mysqli_close($liendb);

?>
</select>
<form method="post">
<label>id : </label><input type="text" value="" id="input_id">
<label>libelle : </label><input type="text" value="" id="input_libelle">
</form>
<script type="text/javascript">
function actualiseinput()
{
var select = document.getElementById("choix");
var choix = select.selectedIndex;
var id = select.options[choix].value;
var libelle = choix.options[choix.selectedIndex].text;


var input_id = document.getElementById('input_id');
input_id.value = id;
var input_libelle = document.getElementById('input_libelle');
input_libelle.value = libelle;
}
</script>

</form>
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
23 déc. 2015 à 12:34
Désolé... codé à la va vite
voici le code corrigé :
<script type="text/javascript">
function actualiseInputs(){
 //récupération des valeurs
 var select = document.getElementById("choix");
  var choice = select.selectedIndex;  
  var id = select.options[choice].value
 var libelle = select.options[select.selectedIndex].text;
 
 //remplissage des inputs
 var input_id = document.getElementById('input_id');
    input_id.value =id;
 var input_libelle = document.getElementById('input_libelle');
     input_libelle.value =libelle;
 
}

</script>
0
thibautB Messages postés 140 Date d'inscription jeudi 7 mai 2015 Statut Membre Dernière intervention 26 octobre 2016 1
23 déc. 2015 à 13:23
oui mais sur deux page séparé ou tout sur une page?
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
23 déc. 2015 à 13:29
Tout sur une page...
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
5 janv. 2016 à 00:00
Dans ton OPTION :
  $resultat = '<option value="'.$_SESSION['lfhf_id'].'" data-mois="'.$ligne['ff_mois'].'">'.$ligne['lfhf_libelle'].'</option>';
 
 echo $resultat;





   //récupération des variables DATA-QQCHOSE
    var elmOption = select.options[choix];
    var mois =  elmOption.getAttribute('data-mois');
    
    //on inscrits la valeur dans un INPUT
    var input_mois = document.getElementById('input_mois');
    input_mois.value = mois;


0
thibautB Messages postés 140 Date d'inscription jeudi 7 mai 2015 Statut Membre Dernière intervention 26 octobre 2016 1
5 janv. 2016 à 00:33
je suis stupide enfaite donc pour finir dans la fonction ca donne ca :
*
function actualiseInputs(recu){
//récupération des valeurs
var select = document.getElementById("choix");
var choice = select.selectedIndex;
var id = select.options[choice].value;
var libelle = select.options[select.selectedIndex].text;
//récupération des variables DATA-QQCHOSE
var Option = select.options[choice];
var mois = Option.getAttribute('data-mois');


//remplissage des inputs
var input_id = document.getElementById('input_id');
input_id.value =id;
var input_libelle = document.getElementById('input_libelle');
input_libelle.value =libelle;
var input_mois = document.getElementById('input_mois');
input_mois.value = mois;

}
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705 > thibautB Messages postés 140 Date d'inscription jeudi 7 mai 2015 Statut Membre Dernière intervention 26 octobre 2016
5 janv. 2016 à 00:45
Tu testes et tu nous dis.......
0
thibautB Messages postés 140 Date d'inscription jeudi 7 mai 2015 Statut Membre Dernière intervention 26 octobre 2016 1
5 janv. 2016 à 18:27
j'au tester au moins pendant 15 min mais il affiche que le libelle dans les inputs ....
0

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

Posez votre question
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
5 janv. 2016 à 19:32
Je viens de tester (10 secondes ) .... et ça marche parfaitement.

As tu une erreur dans la console de ton navigateur ?
As tu bien repris la dernière version du code html ?
=> As tu bien mis un ID à ton SELECT ?
  <select  id ="choix" name="choix" onchange="actualiseInputs();">

0
thibautB Messages postés 140 Date d'inscription jeudi 7 mai 2015 Statut Membre Dernière intervention 26 octobre 2016 1
5 janv. 2016 à 21:50
effectivement ca marche le input_mois je ne l'avais pas mit en id merci ^^ et désolé d'avoir prit de ton temp....
0