Ajax changé un bouton



  • Salut a tous, je voudrait mélangé PHP et Javascript. Alors j'ai ma page avec un Select qui liste les noms des membres, j'ai fait un petit onChange sur le select avec cette fonction en JS :

    function check_button(){
    document.getElementById('modif').href = '?modif=' + document.getElementById('news').value;
    document.getElementById('suppr').href = '?suppr=' + document.getElementById('news').value;
    document.getElementById('voir').href = 'index.php#' + document.getElementById('news').value;
    }
    
    ```Ceci marche, l'id 'news' c'est le select qui contient l'id du membre en question, je voudrais (sans changé, ni rechargé la page) que le code php vérifie une valeur dans la base de donné et suivant ce qu'elle retourne (false ou true) sa change la valeur du bouton avec l'id 'banned' comme ceci :
    Une fois le membre sélectionné => le javascript éxécute un code php qui vérifie une booleen dans la BDD
    Si sa retourne true alors on change un bouton avec id 'banned' => document.getElementById('banned').value='débannir'
    Si sa retourne false alors on change un bouton avec id 'banned' => document.getElementById('banned').value='bannir'
    
    Je sait pas si je me suis bien expliqué, merci d'avance


  • Fonction javascript pour l'ajax :

    function getXhr(){
    	var xhr = null; 
    	if(window.XMLHttpRequest) // Firefox and others
    		xhr = new XMLHttpRequest(); 
    	else 	if(window.ActiveXObject){ // Internet Explorer 
    				try {
    					xhr = new ActiveXObject("Msxml2.XMLHTTP");
    				} catch (e) {
    					xhr = new ActiveXObject("Microsoft.XMLHTTP");
    				}
    	}
    	else { // XMLHttpRequest is not supported by the clients Browser 
    		alert("Your Browser do not accept the XMLHTTPRequest objets..."); 
    		xhr = false; 
    	} 
    	return xhr;
    }
    ```Cette fonction te permettra d'instancier ton "objet ajax" (c'est pas forcément les bons mots que j'utilise, mais l'idée est là), en fonction du navigateur (pour IE/autre ça fonctionne pas pareil..)
    
    Maintenant pour faire ton appel ajax, il te suffit de placer ce bout de code dans une de tes fonction javascript
    

    var xhr = getXhr();
    xhr.onreadystatechange = function(){
    if(xhr.readyState == 4){
    if(xhr.status == 200){
    // ton code javascript si tout est bon
    // c'est ici que tu arrives si ton appel ajax à réussi sans erreur
    }
    else
    {
    // erreur survenue quelque part
    }
    }
    }
    xhr.open("POST", "index.php", true);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    var data = 'data1='+vData1+'&data2='+vData2;
    xhr.send(data);

    Le data est en "format GET" (variable=valeur&variable2=valeur2 …).
    
    Le readyState == 4 et le xhr.status == 200, je te laisse chercher les correspondances exacte des nombres sur google, mais ça doit être un truc genre réponses reçu et valide, un truc du genre, j'ai plus les truc en tête.
    
    Après pense à bien sécuriser tes variables que tu reçoit en php (les vérifications js, c'est pas sécurisé, car suffit d'appeler la page php directement avec un autre formulaire pour passer outre).
    
    Voilà en gros pour la version longue qu'on utilise chez nous..
    
    Pour ma part, je préfère de loin jQuery, et son module ajax qui est beaucoup plus "clair" je trouve.. mais chacun ses préférence ;) (et si par hasard tu veux faire en jQuery, tout est [–>la<--](http://api.jquery.com/jQuery.ajax/)
    
    En espérant que ça va t'aider un peu ;)


  • Merci mais j'ai strictement rien compris a ce que tu m'a dis ^^' je vais utilisé jQuery je pense, merci :)



  • lol, no soucy ;) (pourtant j'pensais pas avoir été si incompréhensible xD)


Log in to reply