XMLHttpRequest 2 liste déroulantes
molasson
Messages postés
67
Statut
Membre
-
molasson Messages postés 67 Statut Membre -
molasson Messages postés 67 Statut Membre -
Bonjour,
Grâce à XMLHttpRequest je recharge ma liste déroulante dont le contenu se trouve dans une bdd mysql. Tant queje n'ai que 1 formulaire qui influence le deuxième, tout va bien, mais dès que j'en rajoute un deuxième, la sa ne fonctionne pas :'(
Voici mon code :
La page script.js contient l'XMLHttpRequest. Quelqu'un pourrait-il m'aider ? Je découvre XMLHttpRequest, et je galère ;)
Grâce à XMLHttpRequest je recharge ma liste déroulante dont le contenu se trouve dans une bdd mysql. Tant queje n'ai que 1 formulaire qui influence le deuxième, tout va bien, mais dès que j'en rajoute un deuxième, la sa ne fonctionne pas :'(
Voici mon code :
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript">
var xhr = getXMLHttpRequest();
var value1 = "1";
var value2 = "1";
get();
function request(oSelect) {
value1 = oSelect.options[oSelect.selectedIndex].value;
get();
}
function request2(oSelect2) {
value2 = oSelect2.options[oSelect2.selectedIndex].value;
get();
}
function get(){
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
readData(xhr.responseXML);
}
};
alert(value1);
alert(value2);
xhr.open("POST", "XMLHttpRequest.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("id_entreprise=" + value1 && "id_materiel=" + value2);
}
function readData(oData) {
var nodes = oData.getElementsByTagName("item");
var oSelect = document.getElementById("modelesSelect");
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("name"));
oOption.value = nodes[i].getAttribute("id");
oOption.appendChild(oInner);
oSelect.appendChild(oOption);
}
}
</script>
</head>
<body>
<div id="programBox">
Client : <select id="entreprisesSelect" onchange="request(this);">
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('tpi');
$query = mysql_query("SELECT * FROM entreprises ORDER BY id");
while ($back = mysql_fetch_assoc($query)) {
echo "\t\t\t\t<option value=\"" . $back["id"] . "\">" . $back["nom"] . "</option>\n";
}
?>
</select>
Type : <select id="typeSelect" onchange="request2(this);">
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('tpi');
$query = mysql_query("SELECT * FROM type ORDER BY id");
while ($back = mysql_fetch_assoc($query)) {
echo "\t\t\t\t<option value=\"" . $back["id"] . "\">" . $back["nom"] . "</option>\n";
}
?>
</select>
Modèle : <select id="modelesSelect"></select>
</div>
</body>
</html>
<?php
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
echo "<list>";
$id_entreprise = (isset($_POST["id_entreprise"])) ? htmlentities($_POST["id_entreprise"]) : NULL;
$id_materiel = (isset($_POST["id_materiel"])) ? htmlentities($_POST["id_materiel"]) : NULL;
if ($id_entreprise && $id_materiel) {
mysql_connect('localhost', 'root', '');
mysql_select_db('tpi');
$query = mysql_query("SELECT * FROM modeles WHERE id_entreprise=" . mysql_real_escape_string($id_entreprise) . " AND id_materiel=" . mysql_real_escape_string($id_materiel) . " ORDER BY nom");
while ($back = mysql_fetch_assoc($query)) {
echo "<item id=\"" . $back["id"] . "\" name=\"" . $back["nom"] . "\" />";
}
}
echo "</list>";
?>
La page script.js contient l'XMLHttpRequest. Quelqu'un pourrait-il m'aider ? Je découvre XMLHttpRequest, et je galère ;)
A voir également:
- XMLHttpRequest 2 liste déroulantes
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Site dangereux liste - Guide
- 2 ecran pc - Guide