Variable PHP dans code Javascript
Fermé
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
-
Modifié par Heryu le 12/10/2011 à 17:34
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 17 oct. 2011 à 09:58
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 17 oct. 2011 à 09:58
A voir également:
- Variable PHP dans code Javascript
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Telecharger javascript - Télécharger - Langages
5 réponses
Bonjour
Si, c'est parfaitement logique que la valeur de ta variable s'affiche avant l'appel à ta fonction test.
Car cette variable est évaluée dans le serveur, au moment ou ta page est envoyée, et pas du tout au moment où tu appelles ta fonction.
Ne jamais oublier : le php s'exécute dans le serveur, le serveur chez le client. Quand le javascript s'exécute, le php n'existe plus.
Si tu veux appeler du php à partir du javascript, car c'est possible, il faut utiliser ajax. La façon la plus simple de l'aborder est sans doute d'utiliser jquery. Tu trouveras un tas d'articles là-dessus sur le web
Si, c'est parfaitement logique que la valeur de ta variable s'affiche avant l'appel à ta fonction test.
Car cette variable est évaluée dans le serveur, au moment ou ta page est envoyée, et pas du tout au moment où tu appelles ta fonction.
Ne jamais oublier : le php s'exécute dans le serveur, le serveur chez le client. Quand le javascript s'exécute, le php n'existe plus.
Si tu veux appeler du php à partir du javascript, car c'est possible, il faut utiliser ajax. La façon la plus simple de l'aborder est sans doute d'utiliser jquery. Tu trouveras un tas d'articles là-dessus sur le web
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
62
Modifié par Heryu le 12/10/2011 à 18:25
Modifié par Heryu le 12/10/2011 à 18:25
Merci de ta réponse !
J'utilise justement Jquery, le vrai code que j'utilise actuellement est le suivant :
Et donc, comme tu disais, le code PHP $_SESSION["connection"]="ok"; se lance automatiquement...
J'utilise justement Jquery, le vrai code que j'utilise actuellement est le suivant :
function session_connect() { var badpwd = 0; $("#login").val(''); $("#password").val(''); $("#span_error").remove(); $("#dialog").dialog( { height:210, width:300, modal:true, resizable:false, draggable:false, buttons: {"Connexion": function() { if ($("#login").val()=='Ryudo' && $("#password").val()=='Cvm66b') { <?php $_SESSION["connection"]="ok"; ?> $(this).dialog("close"); window.location.reload(true); }else{ if (badpwd==0) { $("#password").after('<br /><span id="span_error"><p style="color:red">Mauvais identifiants</p></span>'); badpwd++; } } } } } ); }
Et donc, comme tu disais, le code PHP $_SESSION["connection"]="ok"; se lance automatiquement...
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
62
12 oct. 2011 à 19:33
12 oct. 2011 à 19:33
Je viens de chercher des docs sur Ajax mais ça ma parait complexe... Quel serait le moyen le plus simple en Ajax pour changer cette valeur de session ?
Merci !
Merci !
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
62
16 oct. 2011 à 19:28
16 oct. 2011 à 19:28
Petit up !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
Modifié par Alain_42 le 17/10/2011 à 09:59
Modifié par Alain_42 le 17/10/2011 à 09:59
voilà une methode avec Ajax:
<script type="text/javascript"> ///////AJAX //fonction de base de creation de la request ------------------------------------------ function creerRequest(){ var request = false; //créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs if (window.XMLHttpRequest) { // Mozilla, Safari,... request = new XMLHttpRequest(); if (request.overrideMimeType) { request.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { // IE try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!request) { alert('Abandon :( Impossible de créer une instance XMLHTTP'); return false; } return request; } /////// -------------------------------------------------------------------------- function makeRequest(url,valeur_a_passer){ var http_request = false; http_request = creerRequest(); //on cree la requette Ajax http_request.onreadystatechange = function() { traitementReponse(http_request); } //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 les données avec la méthode POST , http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); data="valeur="+valeur_a_passer; //la on envoie la valeur au script php //alert("Data envoyees: "+data); http_request.send(data); } //traitement de la reponse function traitementReponse(http_request){ if (http_request.readyState == 4) { if (http_request.status == 200) { var reponse=http_request.responseText; //la tu peux faire ce que tu veux c'est du javascript //une boite de dialogue alert("Reponse a la requette Ajax: "+reponse); //ou ecrire dans un div dans ta page //document.getElementById('id_du_div').innerHTML=reponse; //ou ne rien faire du tout }else { alert('Un problème est survenu avec la requête enregistrement.'); } } } </script> et la page php appelee nommée par exemple scriptPhpAjax.php <?php session_start(); //si tu veux atteindre les variables de session //recup valeur envoyée par Ajax $valeur=$_POST['valeur']; //voir plus haut data ="... //tu en fait ce que tu veux, puis réponse de la bonne exécution $_SESSION['connection']=$valeur; //on verifie if($_SESSION['connection']==$valeur){ $reponse="valeur de session modifiée !"; }else{ $reponse="Pb valeur de session pas modifiée !"; } //on envoie la reponse à Ajax echo $reponse; ?> et dans ta page le lancement de tout ça: (exemple) <a href="javascript:makeRequest('scriptPhpAjax.php','oui');"> connection OUI</a><br /> <a href="javascript:makeRequest('scriptPhpAjax.php','non');"> connection NON</a><br /> <!-- attention mettre le chemin relatif complet du scriptPhpAjax.php par rapport à ta page -->