j'ai un script ajax qui fonctionne super de deux menus imbriqués.
<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 { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
/**
* Méthode qui sera appelée sur le click du bouton
*/
function go(){
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('id_categorieB').innerHTML = leselect;
}
}
// Ici on va voir comment faire du post
xhr.open("POST","ajaxCategorieB.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id de l'auteur
sel = document.getElementById('id_categorieA');
idcategorieA = sel.options[sel.selectedIndex].value;
xhr.send("id_categorieA="+idcategorieA);
}
</script>
Quand je crée un article, je lui attribue une categorieA et une categorieB. La pas de souci.
Ensuite quand je veux modifier mon article, lorsque je retourne sur sa fiche, la categorieA s'affiche, mais pas la categorieB, car elle s'affiche que lorsque l'on agit sur le menu déroulant avec la fonction go().
Comment faire pour quand même afficher le second menu sans avoir agit sur le premier ?
Merci pour votre aide.
Cyril
Menu ajax prérempli
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.