Bonjour, tout d'abord merci de bien vouloir m'aider, je patauge depuis des heures sans avancer.
J'utilise jquery pour manipuler l'ajax, voici mon code:
Page où j'ai fait ma liste:
page du code ajax envoyant le nom du logiciel à une page 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 <?php include("include/connexion.php"); echo '<div id="listeLog"><form><select name="logiciels" id="listLog" size="20" onChange="mettreAjour()">'; mysql_connect($host,$user,$passwd) or die("erreur de connexion au serveur $host"); mysql_select_db("siteperso") or die("erreur de connexion a la base de donnees"); $query = "SELECT nom FROM logiciel"; $result = mysql_query($query); while($row = mysql_fetch_row($result)){ echo '<option>'.$row[0]; } if (isset($_POST['nomLog'])) { $query = "SELECT chemin, domaine, comm FROM logiciel where nom like".$_POST['nomLog']; $result = mysql_query($query); while($row = mysql_fetch_row($result)){ $chemin=$row[0]; $domaine=$row[1]; $comment=$row[2]; } }; echo '</select></form></div> <div id="type"></div> <div id="description"></div> <div id="lien"></div>'; ?>
page php récupérant les données du logiciel que je veux afficher, renvoi du xml (normalement):
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 // Partie AJAX du site web : function mettreAjour(){ nom = document.getElementById("listLog").value; //alert(nom); //chaine = "nomLog="+nom; //alert(chaine); $.ajax({ type: "POST", url: "include/infolog.php", data: "nomLog="+nom, dataType: "xml", success: function(xml) { $(xml).find('infos').each(function() { document.getElementById("type").innerHTML =$(this).find('domaine').text(); document.getElementById("description").innerHTML =$(this).find('commentaire').text(); document.getElementById("lien").innerHTML =$(this).find('lien').text(); }); }, error: function(){alert("marche pas");} }); }
Alors mon problème est le suivant, je suis renvoyé à l'évènement erreur si je mets datatype: "xml", si je ne le met pas il se passe rien et quand je test la valeur $(this).find('domaine').text() avec un alert, la valeur est vide.
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 <?php include("include/connexion.php"); mysql_connect($host,$user,$passwd) or die("erreur de connexion au serveur $host"); mysql_select_db("siteperso") or die("erreur de connexion a la base de donnees"); $query = "SELECT chemin, domaine, comm FROM logiciel where nom like".$_POST[['nomLog']; $result = mysql_query($query); echo ' <?xml version="1.0" encoding="utf-8"?> <root>'; while($row = mysql_fetch_row($result)){ echo ' <infos> <domaine>'.$row[1].'</domaine> <commentaire>'.$row[2].'</commentaire> <lien><a href="'.$row[0].'">Télécharger</a></lien> </infos>'; } echo '</root>'; mysql_close(); ?>
Je pense que j'ai un problème avec la réponse en xml mais je vois pas du tout comment résoudre le problème car je suis un néophyte dans ce domaine.
Merci de votre aide !
Partager