L'éditeur JavaScript
Visiteur non-identifié | Identifiez-vous | Devenir membre
Code perdu ? | Combien de visiteurs sur votre site ?
Rechercher :
Page d'accueil
     Home Page

JavaScript
     Tous les scripts
     Proposer un script
     Recherche de script
     AJAX
     Cours de JavaScript
     Liste de discussion
     Forums

Services :
     CountUs
     myCircle
     ClickInText
     XooIt

Trucs et astuces :
     HTML / CSS
     PHP / MySQL
     Réferencement
     Graph / Présentation
     Toutes les astuces
     Ajouter un article

MailingList :
122648 abonnés

Annuaire webmaster :      Hebergement web
     Referencement
     Sites webmasters
     XHTML - CSS2
     PHP
     Affiliation - Pub
     FAI

     Annuaire webmaster

Ressources pour webmasters :
     Kit graphique
     Foire aux questions
     Les membres
     Devenir annonceur
     Faire un lien
     Contact

Partenaire :
     Compteur live
     Créer un forum
     Le PHP facile
     Comscripts
     Liens sponsorisés
     Blog
     Page Rank
     Poésie et cita...
     Gifs animés, f...
     Easy-script.com
     Azote.org - no...
     Web creation ...
     K i s s design
     Outils de créa...
     Electroniq...
     Je crée mon site
     Créer son site...
     Les autres
     Votre site ici ?


Le forum ] [ Préférences ] [ Nouveau sujet ] [ Répondre ] [ Recherche ] [ Vos sujets ] [ Tous lus ] [ Flux RSS ]


[ Forums >> JavaScript >> Problèmes de création JavaScript / DHTML >> problème: récuperer des données à partir d'un fichier xml grâce à ajax ]

> problème: récuperer des données à partir d'un fichier xml grâce à ajax
[ Posté par warui ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 10-03-2010 à 05:55 | 1 messages ]

Bonsoir messieurs! heureux de me joindre à vous
j'ai un problème un peu compliqué pour un débutant comme moi
j'ai une liste déroulante "produit" qui est liée à une bd Mysql via PHP
j'aimerai pas surcharger ma bd avec les données, et j'aimerai quand la liste affiche le nom d'un produit "X", une requette AJAX permettera de lister en bas la fiche technique du produit à partir d'un fichier XML
la liste est correctement liée à la table correspondante, le problème se pose au niveau du "onchange :", qui empeche le résultat de la requette JS de s'afficher en bas
merci d'avance pour votre assistance, j'en serai reconnaissant
voilà mon code

catalogue.php
............................
<head>
<script type="text/javascript" src="responsexml.js"></script>

<title>catalogue</title>

</head>
...............................
* Cération de la requête pour avoir la liste des produits */
$sql3 = "SELECT `idpd`, `nompd`".
" FROM `produit`".
" WHERE `idtype` = ". $idr2 ."".
" ORDER BY `idpd`;";

if($connexion != false)
{
$rech_pd = mysql_query($sql3, $connexion);
/* Un petit compteur pour les départements */
$nd1 = 0;
/* On crée deux tableaux pour les numéros et les noms des produits */
$code_pd = array();
$nom_pd = array();

/* On va mettre les numéros et noms des produits dans les deux tableaux */
while($ligne_pd = mysql_fetch_assoc($rech_pd))
{
array_push($code_pd, $ligne_pd['idpd']);
array_push($nom_pd, $ligne_pd['nompd']);
$nd1++;
}
/* Maintenant on peut construire la liste déroulante */
?>
<select name="produit" id="produit" onChange="showPP('this.value')> (c'est cette ligne qui pose problème)
<option value="-1">- - - précisez produit - - -</option>
<?php
for($p = 0; $p<$nd1; $p++)
{
?>
<option value="<?php echo($code_pd[$p]); ?>"<?php echo((isset($pd_selectionne) && $pd_selectionne == $code_pd[$p])?" selected=\"selected\"":null); ?>><?php echo($nom_pd[$p]); ?></option>
<?php
}
?>
</select>


responsexml.js
var xmlhttp

function showPP(str)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
{
alert ("Your browser does not support AJAX!");
return;
}
var url="responsexml.php";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{
// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}


responsexml.php

<?php
$q=$_GET["q"];

$xmlDoc = new DOMDocument();
$xmlDoc->load("pd_catalog.xml");

$x=$xmlDoc->getElementsByTagName('NOM_PRODUIT');

for ($i=0; $i<=$x->length-1; $i++)
{
//Process only element nodes
if ($x->item($i)->nodeType==1)
{
if ($x->item($i)->childNodes->item(0)->nodeValue == $q)
{
$y=($x->item($i)->parentNode);
}
}
}

$pp=($y->childNodes);

for ($i=0;$i<$pp->length;$i++)
{
//Process only element nodes
if ($pp->item($i)->nodeType==1)
{
echo("<b>" . $pp->item($i)->nodeName . ":</b> ");
echo($pp->item($i)->childNodes->item(0)->nodeValue);
echo("<br />");
}
}
?>




[ Posté par jparia ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 15-03-2010 à 11:40 | 675 messages ]

Slt,
pour ne récupère-tu pas directement le xml sous JS au lieu de le transformer en chaine de caractères brutes sous PHP?

voir exemple sur mon site jaria.free.fr bouton Ajax...

________________
bibliothèque javascript jaria: http://jaria.free.fr




Services email :

Vous devez vous identifier pour profiter des services par email du forum.
Le forum ] [ Préférences ] [ Nouveau sujet ] [ Répondre ] [ Recherche ] [ Vos sujets ] [ Tous lus ] [ Flux RSS ]






compteur gratuit
actuellement en ligne

    PUBLICITE



     ANNUAIRE WEBMAST.
First Coffee
Une des 3 plus grosses plateformes d'affiliation en France, spécialisée dans les grandes marques.
http://network.first-coff...
Cat : Affiliation - publicité
Voir l'annuaire webmaster


     LES SCRIPTS :
78 à éditer
68 à copier/coller
247 des membres
2580 sur le web
>> Tous les scripts

     LES MEMBRES :
65980 membres
4656 comptes CountUs
1842 comptes myCircle

     LES FORUMS :
14 forums
40362 topics
191691 messages
>> Les forums

    SONDAGE

Vous avez un blog ou site classique ?
Un blog
Un site classique
Les deux !
La mini-astuce "Divers" du jour par mirage
Simplifiez-vous les forums : http://update.mozilla.org/extensions/moreinfo.php?id=128&vid=196&category=Miscellaneous ! Avec ce petit menu ajouté à vos options du clic droit, vous avez toutes les balises BBCode ! Très pratique pour le forum de l'EJS ;)
Proposer votre mini-astuce | Archives des mini-astuces
© 1999-2012 EJS - Tous droits réservés | CNIL N° 844440 | 13/02/2012 07:40:10 | Design by | Gen. en 0.493 sec.