IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] eval et javascript


Sujet :

JavaScript

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    309
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 309
    Par d�faut [AJAX] eval et javascript
    Bonjour,

    Je suis sens� reprendre une page que quelqu'un � cod� avec Ajax. Malgr� ma m�connaissance du sujet j'ai r�ussi � corriger tout les probl�mes sauf un que j'ai illustr� par ce petit bout de code :
    test.php :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    function go(){
    	var xhr_object = null;
    		if(window.XMLHttpRequest) // Firefox
    			xhr_object = new XMLHttpRequest();
    		else if(window.ActiveXObject) // Internet Explorer
    			xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    		else // XMLHttpRequest non supporté par le navigateur
    		{ 
    			alert("Sorry, Your browser doesn't support XMLHttpRequest");
    			return false;
    		}
    		xhr_object.open("POST", "alert.php", true);			
     
    		xhr_object.onreadystatechange = function() 
    		{
    			if(xhr_object.readyState == 4)
    			eval(xhr_object.responseText);
    		}
    		xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    			var data = "insert_id="+38
    			+"&change_id="+39;
     
    			xhr_object.send(data);
    }
    alert.php :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    function alert($msg){
            echo '<script language = javascript>';
            echo 'alert('.$msg.');';
            echo '</script>';
    }
     
    alert('insert vaut : '.$_POST['insert_id'].' et change vaut : '.$_POST['change_id']);
    ?>
    Mon alert ne s'affiche pas et le debugger me renvoi un "invalid XML attribute value" au niveau du "= javascript". Savez-vous pourquoi ?

    Merci

  2. #2
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Bonjour,
    a priori, il faut enlever les balises <script> du code renvoy� ...

    A+

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    309
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 309
    Par d�faut
    J'ai d�j� essay� et l'erreur devient une parenth�se manquante apr�s le alert.

  4. #4
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par Tymk
    J'ai d�j� essay� et l'erreur devient une parenth�se manquante apr�s le alert.
    C'est mieux

    Il doit y avoir une quote (simple ou double) dans le message r�cup�r� ...

    A+

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    309
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 309
    Par d�faut
    Pourtant je r�cup�re le contenu de ma variable data et elle n'a rien de particulier.

  6. #6
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par Tymk
    Pourtant je r�cup�re le contenu de ma variable data et elle n'a rien de particulier.


    Tu as 2 alert() :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    	echo 'alert('.$msg.');';
    ...
    alert('insert vaut : '.$_POST['insert_id'].' et change vaut : '.$_POST['change_id']);
    Duquel est-ce que tu parles ??

  7. #7
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    309
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 309
    Par d�faut
    Effectivement j'aurais pu d�clar� ma fonction avec un autre nom. Appelons l� f_alert.

    L'erreur intervient au niveau du alert() dans la d�claration fonction f_alert().

    C'est donc le alert() de javascript.

  8. #8
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par Tymk
    Effectivement j'aurais pu d�clar� ma fonction avec un autre nom. Appelons l� f_alert.

    L'erreur intervient au niveau du alert() dans la d�claration fonction f_alert().

    C'est donc le alert() de javascript.
    Parce que
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    alert('insert vaut : '.$_POST['insert_id'].' et change vaut : '.$_POST['change_id']);
    est cens� t'afficher une alert() sur le serveur ?

    C'est un peu brumeux, tout �a.
    Pour y voir plus clair, peux-tu faire ici un copi�/coll� de la valeur de ton xhr_object.responseText ?

  9. #9
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    309
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 309
    Par d�faut
    L'alert() doit bien s�r s'afficher c�t� client. Dans ma page r�elle j'ai pas mal de requ�tes SQL et lorsqu'elles �chouent je voudrais qu'un alert() s'affiche. C'est ce que j'ai voulu symboliser par ce code.

    Sinon,
    Le reponseText contient
    alert('insert vaut : 38 et change vaut : 39);

  10. #10
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par Tymk
    L'alert() doit bien s�r s'afficher c�t� client. Dans ma page r�elle j'ai pas mal de requ�tes SQL et lorsqu'elles �chouent je voudrais qu'un alert() s'affiche. C'est ce que j'ai voulu symboliser par ce code.

    Sinon,
    Le reponseText contient
    Et alert('.$msg.'); qui selon ton code, doit �tre lanc�e avant ?

  11. #11
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    309
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 309
    Par d�faut
    Citation Envoy� par E.Bzz
    Et alert('.$msg.'); qui selon ton code, doit �tre lanc�e avant ?
    Je ne vois pas pourquoi �a devrait �tre lanc� avant. J'ai juste d�fini une fonction qui appelle le alert(); du javascript.

  12. #12
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par Tymk
    Je ne vois pas pourquoi �a devrait �tre lanc� avant.
    Moi non plus, mais c'est ton code, pas le mien

    Relis le

  13. #13
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    309
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 309
    Par d�faut
    Autant pour moi.

    Ce simple code pour alert.php fonctionne parfaitement
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <?php echo "alert('insert vaut : ".$_POST['insert_id']." et change vaut : ".$_POST['change_id']."');"; ?>
    Par contre j'ai un probl�me assez particulier dans ma page r�elle : toutes les requ�tes � la base de donn�es et autres traitements de ma page appel�e fonctionnent parfaitement SAUF l'affichage des alert(). Qui n'ont rien de plus compliqu� que celui du dessus.

    Le truc bizarre : si j'ajoute, dans ma page appelante, un alert(data) juste apr�s l'appel ajax
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    xhr_object.send(data);
    alert(data);
    alors tous les alert() dans la page appel�e s'affichent correctement.

    Le probl�me c'est que je ne peux pas laisser ce "alert(data)" et je ne sais pas quoi faire.

  14. #14
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par Tymk
    Par contre j'ai un probl�me assez particulier dans ma page r�elle : toutes les requ�tes � la base de donn�es et autres traitements de ma page appel�e fonctionnent parfaitement SAUF l'affichage des alert(). Qui n'ont rien de plus compliqu� que celui du dessus.
    Dans ce cas pr�cis o� les alert() ne s'affichent pas, fais un copi�/coll� du contenu de responseText.
    C'est le seul moyen de voir l'erreur ...

    A+

  15. #15
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    309
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 309
    Par d�faut
    Mais il n'y a pas d'erreur !

    J'ai maintenant plus de pr�cisions. Voici une partie de mon code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    xhr_object.send(data);
    var frmP=document.getElementById("formBDPRinsert");
    window.location.reload();
    frmP.ultimo.value=<?=$id_max-1?>;
    le probl�me est au niveau de l'instruction "window.location.reload();". J'imagine que la page se recharge avant que les alert(); se soient affich�s. Existe-il une instruction qui permette d'attendre un moment avant de poursuivre ? (j'en doute)

    Au pire je vais cr�er une fonction qui nettoie tout les champs mais c'est frustrant de n'avoir pas r�ussi.

    Je te remercie pour ton acharnement � vouloir m'aider .

  16. #16
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par Tymk
    Mais il n'y a pas d'erreur !
    Pas d'erreur signal�e

    le probl�me est au niveau de l'instruction "window.location.reload();". J'imagine que la page se recharge avant que les alert(); se soient affich�s.
    Effectivement si JS modifie la page mais que tu la recharges tu n'auras jamais tes modif � l'�cran ...

  17. #17
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    309
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 309
    Par d�faut
    J'ai finalement nettoy� les champs manuellement. Un peu fastidieux mais efficace.

    Encore fois merci pour ton aide.

    Tymk

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Javascript, AJAX, eval et s�curit�
    Par ZeroDivide dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 21/10/2011, 18h13
  2. [AJAX] Passage de Javascript vers AJAX : besoin de qqes conseils !
    Par winnie82 dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 20/08/2007, 14h30
  3. [AJAX] Probl�me de javascript / compatibilit�
    Par Pepe67 dans le forum G�n�ral JavaScript
    R�ponses: 18
    Dernier message: 30/06/2006, 12h30
  4. [AJAX] Communication PHP ~ JavaScript
    Par TheBaeK1 dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 04/05/2006, 18h24
  5. [String] �quivalent de la fonction eval() en javascript
    Par jeyce dans le forum API standards et tierces
    R�ponses: 5
    Dernier message: 01/09/2004, 08h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo