2 listes liées AJAX
yveson33
-
yveson33 -
yveson33 -
Bonjour,
a tous je debute en Ajax avec un petit programme qui permet de lié deux listes le code m'a l'air correct et je retrouve je resulata de ma requete avec l'aide de firebug mais j'arrive pas a afficher le resulatt sur la deuxieme liste apercu de mon code:
<script type="text/javascript">
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest){//firefox et autres
xhr= new XMLHttpRequest();
}
else
{
if(window.ActiveXObject)//internet explorer
{ try{
xhr = new ActiveXObject('Msxml2.XMLHTTP');
}catch(e){
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
}else{
alert("votre navigateur ne supporte pas les object xmlhttprequest");
xhr = false;
}
}
return xhr;
}
function go(){
var xhr = getXhr();
xhr.onreadystatechange = function(){
if(xhr.readystate == 4 && xhr.status == 200){
leselect = xhr.responseText;
document.getElementById('SsCategorie').innerHTML = leselect;
//document.getElementById('SsCategorie').text = leselect;
}
}
xhr.open("POST","AjaxCategorie.php",true);
xhr.send(null);
}
</script>
formulaire
<form>
<div id="frame">
<h2>Choix de sous categorie</h2>
<h4>Categories</h4>
<select name="Categorie" onchange='go()'>
<option value ='-1' selected >- - - - - - - </option>
<?php
$sql1 = "SELECT * FROM Categorie";
$Result1 = $MaClasse->ExecuteRequete($sql1);
?>
<?php
while($RowCategorie = mysql_fetch_assoc($Result1)){
echo"<option value=".$RowCategorie['id_cat'].">".$RowCategorie['libelle']."</option>";
}
?>
</select>
<br></br>
<h4>Sous categories</h4>
<select name="SsCategorie">
<option value ='-1'>- - - - - - - </option>
</select>
<br><br>
<input type="text" name="label" value=""/>
<br></br>
<input type="button" name="Valider" value="Valider" />
</div>
</form>
fichier AjaxCategorie.php
<?php
require_once "Connexion.class.php";
$MaClasse = new Connexion();
$MaClasse->SeConnecter();
echo"<select name='SsCategorie'";
if(!isset($_post['Categorie'])){
$sql2='SELECT * FROM souscategorie WHERE id_cat= 1';
$Result2 = $MaClasse->ExecuteRequete($sql2);
while($RowsSscategorie = mysql_fetch_assoc($Result2)){
echo"<option value=".$RowsSscategorie['id_sscat'].">".$RowsSscategorie['libelle']."</option>";
}
}
echo"</select>";
?>
merci pour votre aide
a tous je debute en Ajax avec un petit programme qui permet de lié deux listes le code m'a l'air correct et je retrouve je resulata de ma requete avec l'aide de firebug mais j'arrive pas a afficher le resulatt sur la deuxieme liste apercu de mon code:
<script type="text/javascript">
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest){//firefox et autres
xhr= new XMLHttpRequest();
}
else
{
if(window.ActiveXObject)//internet explorer
{ try{
xhr = new ActiveXObject('Msxml2.XMLHTTP');
}catch(e){
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
}else{
alert("votre navigateur ne supporte pas les object xmlhttprequest");
xhr = false;
}
}
return xhr;
}
function go(){
var xhr = getXhr();
xhr.onreadystatechange = function(){
if(xhr.readystate == 4 && xhr.status == 200){
leselect = xhr.responseText;
document.getElementById('SsCategorie').innerHTML = leselect;
//document.getElementById('SsCategorie').text = leselect;
}
}
xhr.open("POST","AjaxCategorie.php",true);
xhr.send(null);
}
</script>
formulaire
<form>
<div id="frame">
<h2>Choix de sous categorie</h2>
<h4>Categories</h4>
<select name="Categorie" onchange='go()'>
<option value ='-1' selected >- - - - - - - </option>
<?php
$sql1 = "SELECT * FROM Categorie";
$Result1 = $MaClasse->ExecuteRequete($sql1);
?>
<?php
while($RowCategorie = mysql_fetch_assoc($Result1)){
echo"<option value=".$RowCategorie['id_cat'].">".$RowCategorie['libelle']."</option>";
}
?>
</select>
<br></br>
<h4>Sous categories</h4>
<select name="SsCategorie">
<option value ='-1'>- - - - - - - </option>
</select>
<br><br>
<input type="text" name="label" value=""/>
<br></br>
<input type="button" name="Valider" value="Valider" />
</div>
</form>
fichier AjaxCategorie.php
<?php
require_once "Connexion.class.php";
$MaClasse = new Connexion();
$MaClasse->SeConnecter();
echo"<select name='SsCategorie'";
if(!isset($_post['Categorie'])){
$sql2='SELECT * FROM souscategorie WHERE id_cat= 1';
$Result2 = $MaClasse->ExecuteRequete($sql2);
while($RowsSscategorie = mysql_fetch_assoc($Result2)){
echo"<option value=".$RowsSscategorie['id_sscat'].">".$RowsSscategorie['libelle']."</option>";
}
}
echo"</select>";
?>
merci pour votre aide
A voir également:
- 2 listes liées AJAX
- Supercopier 2 - Télécharger - Gestion de fichiers
- 2 ecran pc - Guide
- Gta 6 trailer 2 - Guide
- Faire 2 colonnes sur word - Guide
- Listes déroulantes excel - Guide
4 réponses
Slt !
pour faire de l'ajax en utilisant la methode POST tu doit mettre ceci :
xhr.open("POST","AjaxCategorie.php",true);
http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
pour faire de l'ajax en utilisant la methode POST tu doit mettre ceci :
xhr.open("POST","AjaxCategorie.php",true);
http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
Et par ailleurs, tu mets
document.getElementById('SsCategorie')
Alors que ton select n'a pas d'Id :
<select name="SsCategorie">
Le plus simple est de rajouter id="SsCategorie" à ton select !
Xavier
document.getElementById('SsCategorie')
Alors que ton select n'a pas d'Id :
<select name="SsCategorie">
Le plus simple est de rajouter id="SsCategorie" à ton select !
Xavier
oui je te remercie pour cette correction mais j'ai un souci avec le
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
j'ai une erreur de type :
uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.setRequestHeader]" nsresult
xhr.open("POST","AjaxCategorie.php",true);
xhr.send(null);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
j'ai une erreur de type :
uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.setRequestHeader]" nsresult
xhr.open("POST","AjaxCategorie.php",true);
xhr.send(null);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
je pense que c'est objet.setRequestHeader
mais fonction toujours pas j'ai du manquer quelque choses merci tout de meme je continu de chercher