Pages : 1
#1 Le 30/07/2008, à 00:54
- magicpapillon77
Php et javascript pb affichage
Bonjour tout le monde,
Je suis actuellement en stage et nous remettons et recreons un site web en ce moment.
Nous avons fait l'install serveur nous meme tout marche bien donc nous sommes passé a la partie codage...
Voila pr le synopsis lol
Sinon en fait nous avons un pb.
Nous avons décidé de faire une architecture admin avec les dossiers js,php,include, etc..... afin de bien differencier les fonctions et que ce soit au max comprehensible.
Or nous avons du mal a simplement recuperer notre xml...
Chose qui normalement ne nous pose aucun pb vu qu'on en a deja fait des masses mais la celui la nous resiste et nous bloquons je me tourne donc vers vous....
je vous joint les codes des 4 fichiers :
voila pr le class_parametre.inc.php
<?php
class parametre
{
public $id, $date, $val_max_credit, $nb_jour_credit, $val_carton, $nb_joueur, $nb_carton, $gain_max, $txq1, $txq2, $txdq, $txcp;
public function __construct()
{
$this->val_max_credit = $this->nb_jour_credit = $this->val_carton = $this->nb_joueur = $this->nb_carton = $this->gain_max = $this->txq1 = $this->txq2 = $this->txdq = $this->txcp =0;
}
public function get_tab_parametre()
{
global $base;
$tab = array();
$res1 = mysql_query('
SELECT
parametre.val_max_credit, parametre.nb_jour_credit, parametre.val_carton, parametre.nb_joueur, parametre.nb_carton, parametre.gain_max, parametre.txq1, parametre.txq2, parametre.txdq, parametre.txcp
FROM
parametre
WHERE
parametre.id = 1
',$base->DB_CONN());
if (mysql_num_rows($res1) > 0) //On teste s'il y a des resultats
{
while(list($val_max_credit, $nb_jour_credit, $val_carton, $nb_joueur, $nb_carton, $gain_max, $txq1, $txq2, $txdq, $txcp) = mysql_fetch_row($res1))
{
$tab['corps'] = array( 'val_max_credit' => $val_max_credit,
'val_carton' => $val_carton,
'nb_joueur' => $nb_joueur,
'nb_carton' => $nb_carton,
'gain_max' => $gain_max,
'txq1' => $txq1,
'txq2' => $txq2,
'txdq' => $txdq,
'txcp' => $txcp);
}
}
$tab['entete'] = array( 'val_max_credit' => 'Valeur maximum de credit',
'val_carton' => 'Val Carton',
'nb_joueur' => 'Nombre Joueurs',
'nb_carton' => 'Nombre de cartons',
'gain_max' => 'Gain maximum',
'txq1' => 'Taux simple quine 1',
'txq2' => 'Taux simple quine 2',
'txdq' => 'Taux double quine',
'txcp' => 'Taux carton plein');
return $tab;
}
public function get_xml($tab)
{
$phrase = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";
$phrase .= "<parametre>";
foreach($tab['corps'] as $key => $tabValue)
{
$phrase .= "<champ nom=\"".$key."\" label=\"".$tab["entete"][$key]."\" valeur=\"".$tabValue."\"></champ>";
}
$phrase .= "</parametre>";
return $phrase;
}
}
?>
le parametre.js :
function send_parametre(param){
sendData('POST','php/get_xml.php',param);
}
function affiche_liste(){
var liste = '';
alert("parametre.js");
var param = xmlDoc.getElementsByTagName('parametre');
alert("parametre.js : param = "+param);
alert ("parametre.js : param.length = "+param.length);
alert ("parametre.js : param hasChildNodes = "+ param.hasChildNodes);
/*
//fonction permettant la suppression des espaces blancs
for (i=0;i<param.childNodes.length;i++)
{
if ((param.childNodes[i].nodeType == 3)&&(!pasEspaceBlanc.test(param.childNodes[i].nodeValue)))
{
param.removeChild(param.childNodes[i])
i--;
}
}
*/
liste += param.length;
alert("parametre.js : liste = "+liste);
}
le xml....:
<?xml version="1.0" encoding="utf-8" ?>
<parametre>
<champ nom="date" label="Dâte" valeur="0000-00-00 00:00:00" />
<champ nom="val_max_credit" label="Valeur maximum de credit" valeur="100.00" />
<champ nom="nb_jour_credit" label="Nombre de jours de credits" valeur="2" />
<champ nom="val_carton" label="Coefficient pour 152,45 euros et 12 cartons" valeur="3.41" />
<champ nom="nb_joueur" label="Nombre de joueurs" valeur="650" />
<champ nom="nb_carton" label="Nombre de cartons par joueur" valeur="12" />
<champ nom="gain_max" label="Gain maximum" valeur="760.00" />
<champ nom="txq1" label="Taux 1 simple quine" valeur="0,5" />
<champ nom="txq2" label="Taux 2 simple quine" valeur="0,5" />
<champ nom="txdq" label="Taux double quine" valeur="0.5" />
<champ nom="txcp" label="Taux carton plein" valeur="0.5" />
</parametre>
le get_xml:
<?php
header('Content-Type: text/xml; charset=utf-8');
include ("include.inc.php");
if ($_POST['requete']=='parametre' || $_GET['requete']=='parametre')
{
$tab = $parametre->get_tab_parametre();
}
echo $parametre->get_xml($tab);
?>
Je pense que c'est déjà pas mal donc get_xml?requete=parametre marche nickel mais get_tab n'affiche rien du tout....
HELP ME..
#2 Le 30/07/2008, à 07:49
- melyo
Re : Php et javascript pb affichage
Bah comme ça, c'est un peu dur de trouver le problème. Regarde déjà si ta requete SQL est bonne (exécution dans phpmyadmin).
Vérifie que tu rentres bien dans ce if :
if (mysql_num_rows($res1) > 0)
Quand à cette ligne, jamais vu :
while(list($val_max_credit, $nb_jour_credit, $val_carton, $nb_joueur, $nb_carton, $gain_max, $txq1, $txq2, $txdq, $txcp) = mysql_fetch_row($res1))
J'utilise plus comme ça :
while ($line = mysql_fetch_array($res))
{
$test = $line['val_max_credit'];
}
Mais surement que t'as version fonctionne aussi. Je te conseil de mettre des echo partout pour voir qu'est-ce que ça dit... le php en debug, c'est de la merde...
Dernière modification par melyo (Le 30/07/2008, à 07:50)
"L'évasion n'est jamais qu'une construction de l'esprit" - Léo Ferré
Hors ligne
#3 Le 30/07/2008, à 08:58
- choungaboy
Re : Php et javascript pb affichage
Bonjour, je travaille avec magicpapillon77 sur ce projet.
Notre requete mysql est bien formée car nous arrivons a générer le code xml correctement avec tous les bons champs, et nous avons fait valider le retour de la page get_xml par w3c, il s'agit d'un xml bien formé, sans warning (excepté le doctype bien sur). Le problème ne vient pas du php en fait je pense, mais du javascript.
Voici le code javascript/ajax qui récupère le xml généré depuis la page get_xml. Dans notre page html on a un onclick qui lance la fonction sendData(POST, get_xml.php, requete=parametre)
if (window.ActiveXObject) //IE
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
else if (document.implementation && document.implementation.createDocument)
var xmlDoc= document.implementation.createDocument("","",null);
function getHTTPObject()
{
var xmlhttp = false;
/* Compilation conditionnelle d'IE */
/*@cc_on
@if (@_jscript_version >= 5)
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E)
{
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/
/* on essaie de creer l'objet si ce n'est pas deja fait */
if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
{
try
{
xmlhttp = new XMLHttpRequest();
}
catch (e)
{
xmlhttp = false;
}
}
return xmlhttp;
}
function sendData(method, url, data)
{
var xmlhttp = getHTTPObject();
if (!xmlhttp)
return false;
if(method == "GET")
{
if (data == 'null') {
xmlhttp.open("GET", url, true); //ouverture asynchrone
}
else {
xmlhttp.open("GET", url + "?" + data, true);
}
xmlhttp.send(null);
}
else if(method == "POST")
{
xmlhttp.open("POST", url, true); //ouverture asynchrone
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xmlhttp.send(data);
}
/* on definit ce qui doit se passer quand la page repondra*/
xmlhttp.onreadystatechange= function()
{
if (xmlhttp.readyState == 4) /* 4 : etat "complete" */
{
if (xmlhttp.status == 200) /* 200 : code HTTP pour OK */
{
xmlDoc = xmlhttp.responseXML;
var param=xmlDoc.getElementsByTagName('parametre');
affiche_liste();
}
}
}
return true;
}
Voila, quand on fait un alert de xmlDoc, c'est un objet de type objxml, param aussi, mais impossible d'accéder à param.childNodes, la taille de param.length est 0, alors que le xml comporte bien plusieurs champs param dans parametre .....
Merci d'avance
#4 Le 30/07/2008, à 14:57
- magicpapillon77
Re : Php et javascript pb affichage
Petit up pour pas finir au fond du trou, nous avons vraiment besoin de vous......
#5 Le 31/07/2008, à 08:57
- magicpapillon77
Re : Php et javascript pb affichage
Up Help Us