La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  Javascript / DOM / Ajax
(Modérateurs: Shain, Netah, Lilian, lauryv, ToToMaStEr)
   récuperer des données à partir d'un fichier xml
« Précédent Suivant »
Pages: [1] Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: récuperer des données à partir d'un fichier xml  (Lu 361 fois)
récuperer des données à partir d'un fichier xml
« sur: le 10-03-2010 a 05:39:50 »
warui
Membre récent
*

Hors-Ligne

Messages: 1





Voir le Profil    E-Mail
Répondre avec citation

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

index.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 */
?>
[b[color=Red]<select name="produit" id="produit" onChange="showPP('this.value')> (c'est cette ligne qui pose problème)[/color] [/b]
<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 />");
}
}
?>
------------------------------------------

Rapporter au modérateur  
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
L’intérêt du Google CDN pour vos sites internet
AdFever vous propose de gagner un iPad avec son plugin de comparaison
Profitez de la documentation officielle PHP dans Google Chrome
Interdire le copier-coller dans un formulaire
GTMetrix : le site qui analyse la performance de votre site
OSE – Un outil SEO listant backlinks et poids de vos pages
PHP Speedy optimise votre site internet
Tester la taille de votre site internet dans plusieurs résolutions
 
 
casino
 
 
 

Copyright (c) Devclic 2002 - 2010 - Tous droits réservés

creation site internet strasbourg