+1 pour la compréhension préalable des échanges client/serveur/bdd
Par contre, on peut voir les balises de tes 2 select, avec les onchage concernés (donc les 2 appels Ajax) ?
A+
+1 pour la compréhension préalable des échanges client/serveur/bdd
Par contre, on peut voir les balises de tes 2 select, avec les onchage concernés (donc les 2 appels Ajax) ?
A+










ajax c'est du javascript ...
au départ ta page php geneère une page html
sur la page htmle le onchange appelle eune focntion javascript (ajax)
qui appelle une page php coté serveur.
la page php effectue une requete sql
et redige le contenu du retour
la page html n'ayant pas rechargé traite alors la reponse...
En fait pour imager la chose, imagine que ajax est un coursier qui fait des aller et retours entre la page html chez le client et ton serveur, sasn que la page html ne soi rechargée ...
et à chaque foi sle coursier part de la page html avec une liste de courses (les paramètres)
et revient sur la page html avec un chargement, le responseText (ou XML ...)
donc la fonction qui envoie ton couriser dois savoir d'ou elle part et ce qu'elle doit faire comme courses ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Ok merci pour otut ce monde qui m'aide sa me touche serieux...
Bon voila mes codes pour etre plus clair:
On a dans une page ajax_code.js ma fonction go chargée dans page1.php entre des balises script:
Voila ma page1.php qui contient le formulaire et le div pour le select2 ainsique le div pour l'affichage produit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 function getXhr(){ var xhr = null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr; } /** * Méthode qui sera appelée sur le click du bouton */ function go(div, file, nameprem){ var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ leselect = xhr.responseText; // On se sert de innerHTML pour rajouter les options a la liste document.getElementById(div).innerHTML = leselect; } } // Ici on va voir comment faire du post xhr.open("POST",file,true); // ne pas oublier ça pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier de poster les arguments // ici, l'id de l'auteur sel = document.getElementById(nameprem); object = sel.options[sel.selectedIndex].value; alert(object); xhr.send("object="+object); }
Sur le onchange du premier select voila ma page Ajax2.php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <div id="texte2" > <form> <fieldset style="width: 800px"> <legend>Voici les gammes Home Cinéma Bose®:<br><br></legend> <label>Gamme:</label> <select name='auteur' id='auteur' onchange='go("div_livre","Ajax2.php","auteur")'> <option value='-1'>Selectionnez une gamme...</option> <? $res = mysql_query("SELECT id_gamme, nom_gamme FROM Gamme ORDER BY nom_gamme"); while($row = mysql_fetch_assoc($res)){ echo "<option value='".$row["id_gamme"]."'>".$row["nom_gamme"]."</option>"; } ?> </select> <label>Produit:</label> <div id="div_livre" style="display:inline"> <select name='book' id='book' > <option value='-1'>Selectionnez un produit...</option> </select> </div> </fieldset> </form> <div id="div_produit"> Votre Produit s'affichera ici. </div> </div>
J'ai mis en gras l'appel de go() sur le onchange.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<?php if(isset($_POST["object"])){ $host = "x"; $user = "x"; $bdd = "x"; $passwd = "x"; $co=mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur"); $db=mysql_select_db($bdd) or die("erreur de connexion a la base de donnees"); echo'<select name="book" id="book">'; $res = mysql_query("SELECT identifiant_produit , nom_produit FROM Bose WHERE id_gamme=".$_POST["object"]." ORDER BY nom_produit"); while($row = mysql_fetch_assoc($res)){ echo '<option value='.$row["identifiant_produit"].'onChange='go("div_produit","Ajax3.php","book")'>'.$row["nom_produit"].'</option>'; } echo'</select>'; } ?>
et pour l(instant ma page Ajax3.php toute bateau:
Voila jvais testé déjà mais les erreurs doit y en avoir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php echo'yooooooooooooo!'; $_POST["object"]; ?>
D'accord SpaceFrog j'ai bcp aimé l'image, et elle est parlante:
sa veut dire que le coursier envoyé par la fonction ajax serait perdu dans le onchange sur mon select2, il connaitra pas le div_produit vu qu'il existe pas dansla page où il est mais juste dans celle d'avant, erf sa se complique...!










ben déja la page php n'est pas bonne :
il fait quoi tout seul le POST ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?php echo'yooooooooooooo!'; $_POST["object"]; ?>
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Merde vous avez raison jvoulais mettre le $_POST dans une var j'ai oublié et je modifie le onchange...










Il faut être un peu plus rigoureux ...
pour faire un test tu peux juste faire l'echo du post et voir ce que te retourne le responseText ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
bon voila mes modifs:
Ajax2.php:
et Ajax3.php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <?php if(isset($_POST["object"])){ $host = "x"; $user = "x"; $bdd = "x"; $passwd = "x"; $co=mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur"); $db=mysql_select_db($bdd) or die("erreur de connexion a la base de donnees"); echo'<select name="book" id="book" onChange='go("div_produit","Ajax3.php","book")'>'; $res = mysql_query("SELECT identifiant_produit , nom_produit FROM Bose WHERE id_gamme=".$_POST["object"]." ORDER BY nom_produit"); while($row = mysql_fetch_assoc($res)){ echo '<option value='.$row["identifiant_produit"].'>'.$row["nom_produit"].'</option>'; } echo'</select>'; } ?>
Sa ne marche pas car le select2 ne saffiche plus, le onchange plante lexécution de select2, les paramètres doivent être foireux(surtout le premier param qui est un div de la pag1 seuelement jvoi pas comment le passer autrement), jvais faire des tests, si vous voyez des erreurs surtout nh'esitez pas!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php echo'yooooooooooooo!'; echo $_POST["object"]; ?>
E bzz c'est ce que j'ai corrigé non?
j'ai reussi à corriger une partie du problème ( je crois)un problème de cote:
mais mon deuxieme select apparait bien et la liaison 1--> marche mais quand je change dans le select2 rien ne se passe, est ce que le onchange est effectué en mettant des doubles cotes?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<?php if(isset($_POST["object"])){ $host = "x"; $user = "x"; $bdd = "x"; $passwd = "x"; $co=mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur"); $db=mysql_select_db($bdd) or die("erreur de connexion a la base de donnees"); echo'<select name="book" id="book" onChange="go("div_produit","Ajax3.php","book")">'; $res = mysql_query("SELECT identifiant_produit , nom_produit FROM Bose WHERE id_gamme=".$_POST["object"]." ORDER BY nom_produit"); while($row = mysql_fetch_assoc($res)){ echo '<option value='.$row["identifiant_produit"].'>'.$row["nom_produit"].'</option>'; } echo'</select>'; } ?>










gros problème de syntaxe au niveau des quotes entre html en php !!!
il faut echapper des simples quotes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2echo'<select name="book" id="book" onChange="go(\'div_produit\',\'Ajax3.php\',\'book\')">';
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Tu as un problème dans l'imbrication des quotes du tag <select>A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo'<select name="book" id="book" onChange="go(\"div_produit\",\"Ajax3.php\",\"book\")">'










non EBzz echapper des doubles cotes ne fonctionnera pas a niveau html ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
SpaceFrog je n'ai rien d'autre à dire à part quel sauveur....tout marche!!!
j'ai tellement osulé tout au long du forum a jms mettre mes cotes et tout sa, mais l'a...merci enormement de même que e bzzz....tout s'affiche correctement et lid du produit est bel et bien recupéré...
Merci à tous, je fini mon truc et jvous envoie le petit lien pour vous montrez un peu ce que vous avez fait aussi!
mais je repasse si j'ai des couilles.... mer merci!!!!!!
voila on sa en est:
http://www.excelson.com/selection/se...ome_cinema.php










Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
oh si SpaceFrog jrepasserai mais je savoure et je te dis un grnad merci de ne pas m'avoir viré!!c'etait pour la bonne cause , jvous ferais des reduc' pour des produits BOSE si vous habitez pas loin de lyon....










Je tiens à te féliciter et à te remercier publiquement pour tes efforts à respecter les règles de notre forum...
Je pense que tu comprends mieux maintenant le pourquoi
Le mauvais départ est oublié![]()
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Partager