Jquery - Appel ajax dans un modalbox

cs_lostrailler Messages postés 26 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 29 septembre 2010 - 29 sept. 2010 à 09:33
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 30 sept. 2010 à 19:08
Bonjour à tous,

Je vous expose mon soucis avec jquery et le plugin modalbox.

Je dois afficher un formulaire à remplir dans un modalbox. Jusque là pas de soucis.
Où ca se complique c'est que dans ce formulaire j'ai une liste déroulante qui se remplit en fonction de ce qui a choisis dans la liste précédente.

Et à cet endroit mon code ne passe plus, il plante au .innerHTML.

PS : le formulaire fonctionne si on l'affiche dans une page normal.

Voici mon code :

Le formulaire :
<form name='form_operation' action='index.php?EX=operation&CASE=validAjout&ID=".$param."' method='post' onsubmit='return verifForm(this, "Les champs suivant sont obligatoire : ")'>
<select name='si' id='id_niv1' size=1 onChange=\"makeRequest('mod/list_siebel_clarify.php','id_niv1','id_list2')\">
<option disabled='disabled'>...</option>
<option value='S'>S</option>
<option value='CT'>CT</option>
<option value= 'CI'>CI</option>
</select>,
,

----


</form>


La fonction javascript :

function makeRequest(url,id_niveau,id_ecrire)
{
var http_request  = false;
//créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }

    if (!http_request) {
        alert('Abandon :( Impossible de créer une instance XMLHTTP');
        return false;
    }
    http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrire); } //affectation fonction appelée qd on recevra la reponse
// lancement de la requete
http_request.open('POST', url, true);
//changer le type MIME de la requête pour envoyer des données avec la méthode POST ,  !!!! cette ligne doit etre absolument apres http_request.open('POST'....
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
obj=document.getElementById(id_niveau);
data="val_sel="+obj.value;
    http_request.send(data);
}

function traitementReponse(http_request,id_ecrire) {
var affich="";
if (http_request.readyState == 4) {
if (http_request.status == 200) {
// cas avec reponse de PHP en mode texte:
//chargement des elements reçus dans la liste
var affich_list=http_request.responseText;
//alert("Reponse de php: "+affich_list);
obj = document.getElementById(id_ecrire); 
obj.innerHTML = affich_list;
} 
else {
                alert('Un problème est survenu avec la requête.');
        }
    }
}


Si vous parvenez à me débloquer. Merci d'avance :)

1 réponse

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
30 sept. 2010 à 19:08
Bonjour,
que t'annonce l'alerte
alert("Reponse de php: "+affich_list);

;O)
0
Rejoignez-nous