[Php/Ajax] interaction select avec onchange
                    
        
     
             
                    patrice86
    
        
    
                    Messages postés
            
                
     
             
            1520
        
            
                                    Statut
            Membre
                    
                -
                                     
patrice86 Messages postés 1520 Statut Membre -
        patrice86 Messages postés 1520 Statut Membre -
        Bonjour,       
J'ai un select qui m'affiche les noms de pls marques et je souhaiterai récupérer l'id de la marque sélectionner pour ensuite afficher les catégories lui correspondants en temps réel (AJAX).
Pour cela j'utilise un onchange.
Ma page categorie.php avec le select:
La fonction ajax toujours dans la page categorie.php
Et enfin la page appelée par AJAX => marque.php
Sauf que rien ne marche, je ne comprend vraiment pas pourquoi, j'ai parcouru le webe t plusieurs forum sans forcément trouvé d'aide à mon problème. Donc je me tourne vers vous.
Je suposes que l'erreur provient lors de l'appel du fichier php et du transfert de paramètre mais je ne trouves pas de solution.
J'espères que vous pourrez m'aider :)
MERCI
            
            
                
            
                
    
    
    
        J'ai un select qui m'affiche les noms de pls marques et je souhaiterai récupérer l'id de la marque sélectionner pour ensuite afficher les catégories lui correspondants en temps réel (AJAX).
Pour cela j'utilise un onchange.
Ma page categorie.php avec le select:
<?php      
 $dbconnect=pg_connect("host=localhost dbname=PTI user=postgres password=xxxxx");      
 echo'<select id="marque" onchange="mafonction()">';      
       
  $sql = 'SELECT num_mar,lib_mar FROM marque';        
  $req = pg_query($dbconnect,$sql);      
        
  echo '<option value="0">Sélectionner une marque</option>';      
   while ($data = pg_fetch_array($req))       
   {       
    echo "<option value='".$data['num_mar']."'>".$data['lib_mar']."                  </option>";      
   }        
          
    pg_free_result ($req);        
      pg_close ();       
    echo'</td></select>';      
 ?>
La fonction ajax toujours dans la page categorie.php
function ajaxFunction()      
{      
// le blabla de ajax pour vérifier le navigateur web utiliser....     
        var marque = $(":select[name=marque]").value();      // On récupère la valeur du sélect ayant pour id "marque"       
       $.post('php/marque.php',                // AJAX : On appelle un script php      
   {num_marque: marque},          // Passage de la variable en paramètre      
           function(data){       
    <gras>   $('#principal').html(data);               // On ajoute le résultat de se script dans la balise qui a pour id "conteneur".    
 });      
   }
Et enfin la page appelée par AJAX => marque.php
<?php      
   $dbconnect=pg_connect("host=localhost dbname=PTI user=postgres password=xxxx");      
  $req = "SELECT num_cat, lib_cat FROM categorie WHERE nummar_cat =". $_POST['num_marque'] .";";      
$resultat = pg_query($req);      
echo "<select name='modele'>";      
echo "<option value='0'>Choix du modèle</option>";       
while ($modèle = mysql_fetch_array($resultat)      
{      
    echo "<option value='". $modele['num_cat'] ."'>". $modele['lib_cat'] ."</option>";      
}        
echo "</select>";      
?>
Sauf que rien ne marche, je ne comprend vraiment pas pourquoi, j'ai parcouru le webe t plusieurs forum sans forcément trouvé d'aide à mon problème. Donc je me tourne vers vous.
Je suposes que l'erreur provient lors de l'appel du fichier php et du transfert de paramètre mais je ne trouves pas de solution.
J'espères que vous pourrez m'aider :)
MERCI
        A voir également:         
- Ajax onchange select php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Php alert ✓ - Forum PHP
- Reboot and select proper boot device asus - Forum Matériel & Système
- Please select boot device - Forum Windows 7
18 réponses
                        
                    remplaces:<ital>echo'<select name="marque" onchange="mafonction()">';/ital>
par <code>echo'<select name="marque" onchange="ajaxFunction()">';/code>
    
                par <code>echo'<select name="marque" onchange="ajaxFunction()">';/code>
                        
                    Heu oui truc tout bête je me suis trompé lorsque j'ai créer le poste mais c'est bien ajaxfuntion() qui est mis mais ça ne fonctionne toujours pas.
je penses que je vais abandonner le onchange et envoyer le résultat du select avec js et l'afficher avec ajax (même si je galère encore...)
    
                je penses que je vais abandonner le onchange et envoyer le résultat du select avec js et l'afficher avec ajax (même si je galère encore...)
                        
                    Ha ok   
ajaxfunction ou ajaxFunction ? ce n'est pas pareil
mais je lis:
var marque = $(":select[name=marque]").value(); // On récupère la valeur du sélect ayant pour id "marque"
hors tu n'as pas d'id="marque" dans ta balise <select
    
                ajaxfunction ou ajaxFunction ? ce n'est pas pareil
mais je lis:
var marque = $(":select[name=marque]").value(); // On récupère la valeur du sélect ayant pour id "marque"
hors tu n'as pas d'id="marque" dans ta balise <select
                        
                    je récupère la valeur du select dont le nom est 
<select id="marque">
Mais je vais abandonner l'idée du onchange, j'ai passé la journée de hier plus cette matinée sans réussir à trouver d'aide, je ne peux me permettre de perdre plus de temps malheureusement.. Je suis un peu coincé au niveau du planning que l'on m'impose.
Merci quand même à vous ;)
    
                <select id="marque">
Mais je vais abandonner l'idée du onchange, j'ai passé la journée de hier plus cette matinée sans réussir à trouver d'aide, je ne peux me permettre de perdre plus de temps malheureusement.. Je suis un peu coincé au niveau du planning que l'on m'impose.
Merci quand même à vous ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
                        
                    c'est peut être le name qu'il faut
<select id="marque" onchange=".....
    
                <select id="marque" onchange=".....
<select name="marque" id="marque" onchange="....
                        
                    Bonjour,
var marque = $(":select[name=marque]").value(); // On récupère la valeur du sélect ayant pour id "marque"
Tu spécifies name=marque, alors que ton <select> contient seulement id=marque.
Deuxième problème, value n'est pas une fonction : donc pas de parenthèses.
Sinon, plus simple à mon avis, c'est de passer la valeur du select en paramètre du onchange :
<select id="marque" onchange="mafonction(this.value)">
côté script, l'en-tête de ta fonction devient function ajaxFunction(marque)
et tu peux enlever la ligne var marque=...
Xavier
    
                var marque = $(":select[name=marque]").value(); // On récupère la valeur du sélect ayant pour id "marque"
Tu spécifies name=marque, alors que ton <select> contient seulement id=marque.
Deuxième problème, value n'est pas une fonction : donc pas de parenthèses.
Sinon, plus simple à mon avis, c'est de passer la valeur du select en paramètre du onchange :
<select id="marque" onchange="mafonction(this.value)">
côté script, l'en-tête de ta fonction devient function ajaxFunction(marque)
et tu peux enlever la ligne var marque=...
Xavier
                        
                    J'ai finalement repris l'idée du onchange et j'ai enfin réussi à le faire fonctionner
Pfiou ce fût long tout de même...
Mais maintenant un nouveau problème se pose à moi.
Comment je peux faire pour récupérer la valeur de ma 2éme liste déroulante afin de l'envoyer avec toutes les autres valeurs de mon form à ma page d'insertion.php pour effectuer un insert into...
En gros, comment récupérer la valeur sélectionner de cette liste déroulante qui est lié à une liste déroulante ?
Merci
    
                Pfiou ce fût long tout de même...
Mais maintenant un nouveau problème se pose à moi.
Comment je peux faire pour récupérer la valeur de ma 2éme liste déroulante afin de l'envoyer avec toutes les autres valeurs de mon form à ma page d'insertion.php pour effectuer un insert into...
En gros, comment récupérer la valeur sélectionner de cette liste déroulante qui est lié à une liste déroulante ?
Merci
                        
                    Cette 2éme liste est définit:
<select name='categorie' id='categorie'>
Mais impossible de récupérer sa valeur
    
                <select name='categorie' id='categorie'>
Mais impossible de récupérer sa valeur
                        
                    Je réponds bien tard, mais j'ai eu des soucis qui m'ont empécher de revoir mon code.
Je n'ai toujours pas réussi à récupérer la valeur de la seconde liste déroulante.
Une idée ?
    
                Je n'ai toujours pas réussi à récupérer la valeur de la seconde liste déroulante.
Une idée ?
                        
                    suite:
tu ecris plus haut:
Cette 2éme liste est définit:
<select name='categorie' id='categorie'>
Mais impossible de récupérer sa valeur
hors dans ton script php marque.php appelé par ajax pour créer cette 2 ième liste tu as:
donc pour récupérer le choix fait dans deuxième liste c'est $_POST['modele']
et pas categorie comme tu dis dans ton post du 2 novembre
    
                tu ecris plus haut:
Cette 2éme liste est définit:
<select name='categorie' id='categorie'>
Mais impossible de récupérer sa valeur
hors dans ton script php marque.php appelé par ajax pour créer cette 2 ième liste tu as:
echo "<select name='modele'>"; echo "<option value='0'>Choix du modèle</option>"; .........
donc pour récupérer le choix fait dans deuxième liste c'est $_POST['modele']
et pas categorie comme tu dis dans ton post du 2 novembre
                        
                    Mais j'aimerai récupérer la valeur choisis dans la liste dans le JS 
ha d'accord, alors
modifies marque.php pour avoir:
et dans ton Js pour récuperer
var modele_choisi=document.getElementById('modele').value;
Mais pourquoi en JS ?
plus haut le 2 novembre tu disait:
Comment je peux faire pour récupérer la valeur de ma 2éme liste déroulante afin de l'envoyer avec toutes les autres valeurs de mon form à ma page d'insertion.php pour effectuer un insert into...
                
                
    
                ha d'accord, alors
modifies marque.php pour avoir:
echo "<select name='modele' id='modele'>"; echo "<option value='0'>Choix du modèle</option>"; .........
et dans ton Js pour récuperer
var modele_choisi=document.getElementById('modele').value;
Mais pourquoi en JS ?
plus haut le 2 novembre tu disait:
Comment je peux faire pour récupérer la valeur de ma 2éme liste déroulante afin de l'envoyer avec toutes les autres valeurs de mon form à ma page d'insertion.php pour effectuer un insert into...
                        
                    Car je récupère tout en JS pour l'envoyer ensuite en Ajax.
Si tu nous dis pas tout
pour récupérer en JS pour l'envoyer en Ajax:
    
                Si tu nous dis pas tout
pour récupérer en JS pour l'envoyer en Ajax:
var modele_choisi=document.getElementById('modele').value;
                
                
                        
                    ou dans ton cas:
    
                function ajaxFunction()      
{      
// le blabla de ajax pour vérifier le navigateur web utiliser....     
        var modele = $(":select[name=modele]").value();      // On récupère la valeur du sélect ayant pour id "modele"       
       $.post('php/marque.php',                // AJAX : On appelle un script php      
   {num_modele: modele},          // Passage de la variable en paramètre      
           function(data){       
    <gras>   $('#principal').html(data);               // On ajoute le résultat de se script dans la balise qui a pour id "conteneur".    
 });      
   }
                
                