Bonjour,
J'ai une(des) erreur(s) dans les codes qui suivent.
J'en perds mon html !
Pouvez-vous m'aider ?
Mon problème, c'est que la 1ere liste déroulante ne contient que "Choisissez, svp !".
Jamais n'apparaissent les "libelle" de la bdd "shop_categorie00".
Par ailleurs la 2e liste déroulante ne s'affiche tout naturellement pas !
(que ce soit sur Chrome, IE8 ou Firefox5)
Mes bdd utilisées sont :
shop_categorie00 (avec id, libelle)
et
shop_categorie01 (avec id, libelle, parent)
A noter que "parent" de shop_categorie01 lie vers "id" de shop_categorie00 !
Voici cat01.php (dans le dossier /php):
Voici oXHR.js (dans le dossier /js):
Modifié par jytest (28 Jul 2011 - 01:50)
J'ai une(des) erreur(s) dans les codes qui suivent.
J'en perds mon html !
Pouvez-vous m'aider ?
Mon problème, c'est que la 1ere liste déroulante ne contient que "Choisissez, svp !".
Jamais n'apparaissent les "libelle" de la bdd "shop_categorie00".
Par ailleurs la 2e liste déroulante ne s'affiche tout naturellement pas !
(que ce soit sur Chrome, IE8 ou Firefox5)
Mes bdd utilisées sont :
shop_categorie00 (avec id, libelle)
et
shop_categorie01 (avec id, libelle, parent)
A noter que "parent" de shop_categorie01 lie vers "id" de shop_categorie00 !
<head>
...
<script type="text/javascript" src="js/oXHR.js"></script>
<script type="text/javascript">
<!--
function request(oSelect) {
var value = oSelect.options[oSelect.selectedIndex].value;
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
readData(xhr.responseXML);
document.getElementById("loader00").style.display = "none";
} else if (xhr.readyState < 4) {
document.getElementById("loader00").style.display = "inline";
}
}
xhr.open("POST","php/cat01.php",true);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send("parent="+value);
}
function readData(oData) {
var nodes = oData.getElementsByTagName("item");
var oSelect = document.getElementById("categorie01");
var oOption, oInner;
oSelect.innerHTML = "";
for (var i=0, c=nodes.length; i<c ; i++) {
oOption = document.createElement("option");
oInner = document.createTextNode(nodes[i].getAttribute("libelle"));
oOption.value = nodes[i].getAttribute("id");
oOption.appendChild(oInner);
oSelect.appendChild(oOption);
}
}
-->
</script>
</head>
...
<body>
...
<table id="tableoptions" border="0" cellspacing="0" style="vertical-align:middle;">
<tr>
<td width="200"></td>
<td width="300"></td>
</tr>
<tr>
<td colspan="2" style="padding:7px;" bgcolor="#0E72B5" class="blanc bold">Titre : prix en ligne instantané</td>
</tr>
<tr>
<td colspan="2" style="padding:7px;">
Afin d'établir un devis,<br>veuillez choisir parmi toutes les options suivantes :</td>
</tr>
<tr>
<td style="padding:7px;">Document</td>
<td style="padding-left:5px;">
<select id="categorie00" style="width:280px;" onChange="request(this);">
<option value="none">Choisissez, svp !</option>
<?php
require_once("connexionMysql.inc.php");
$query = mysql_query("SELECT * FROM shop_categorie00 ORDER BY libelle");
while ($back = mysql_fetch_assoc($query)) {
echo "\t\t\t\t<option value='".$back['id']."' >".$back['libelle']."</option>\n";
}
?>
</select>
<span id="loader00" style="display: none;"><img src="images/boutique/loader.gif" alt="loading" width="16" height="16" /></span>
</td>
</tr>
<tr>
<td style="padding:7px;">Descriptif</td>
<td style="padding-left:5px;">
<select id="categorie01" style="width:280px;">
</select>
<span id="loader01" style="display: none;"><img src="images/boutique/loader.gif" alt="loading" width="16" height="16" /></span>
</td>
</tr>
</table>
</body>
Voici cat01.php (dans le dossier /php):
header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="UTF-8" ?>';
echo "<list>";
$parent = (isset($_POST["parent"])) ? htmlentities($_POST["parent"]) : NULL;
if ($parent) {
date_default_timezone_set('Europe/Brussels');
require_once("connexionMysql.inc.php");
$query = mysql_query("SELECT * FROM shop_categorie01 ".
"WHERE parent=".
mysql_real_escape_string($parent).
" ORDER BY libelle");
while ($back = mysql_fetch_assoc($query)) {
echo '<item id="'.$back['id'].'" libelle="'.$back['libelle'].'" />';
}
echo "</list>";
}
Voici oXHR.js (dans le dossier /js):
function getXMLHttpRequest() {
var xhr = null;
if (window.XMLHttpRequest || window.ActiveXObject) {
if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
} else {
xhr = new XMLHttpRequest();
}
} else {
alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
return null;
}
return xhr;
}
[/i][/i] Modifié par jytest (28 Jul 2011 - 01:50)