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

Bibliothèques & Frameworks Discussion :

Appel fonction JavaScript dans réponse serveur via ajax.request


Sujet :

Bibliothèques & Frameworks

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 21
    Points : 9
    Points
    9
    Par défaut Appel fonction JavaScript dans réponse serveur via ajax.request
    bonjour,

    voila mon probleme

    a partir d'un bouton radio, j'effectue une ajax.request qui appelle un fichier php.
    Le but est d'afficher un textarea pour envoyer un sms avec un compteur qui denombre le nombre de caracteres tape.
    Cette fonction updatecounters marche nickel sans passage par ajax mais le decompte ne fonctionne plus par cette methode. J'ai bien le textearea qui s'affiche mais c'est tout, pas de decompte .....

    Voivi les differents codes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo "<input type=\"radio\" id=\"message_doc1\" name=\"message_doc\" value=\"1\" onclick=\"getMedecin(document.getElementById('message_doc1').value,'send_message');\"> Oui&nbsp;&nbsp;<input type=\"radio\" id=\"message_doc2\" name=\"message_doc\" value=\"0\" onclick=\"getMedecin(document.getElementById('message_doc2').value,'send_message');\" checked> Non</p>";
    	echo "<span id=\"send_message\">";
          include 'send_message.php';
        echo "</span>";
    Dans le meme fichier php, voici ma fonction GetMedecin
    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
        function getMedecin(value,name) {
        var url = name+'.php';
     
         parametre="sms="+value;
     
        var myAjax = new Ajax.Request (
           url,
          {
           method: "post",
    	   evalScripts: true,
           parameters : parametre,
           onSuccess: function transResult (response) {
             document.getElementById(name).innerHTML=response.responseText;
           },
           onFailure: function transResult (response) {
            alert ('Failure'+response.responseText);
           }
          }
        );	
        return false;
        }
    Pour finir, mon fichier 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
     
    if (isset($_POST['sms'])) {
      $sms=$_POST['sms']; 
      if ($sms==1) {
     
         ?>
     
        <script language="JavaScript" type="text/javascript">
        <!--	 
          function updateCounters(text_area_id, display_chars_id, display_sms_id) { 
          var text_area = document.getElementById(text_area_id);
          var display_chars = document.getElementById(display_chars_id);
          var display_sms = document.getElementById(display_sms_id);
          if(text_area && display_chars && display_sms){
            if(display_chars.type)
                display_chars.value = text_area.value.length;
            else
                display_chars.innerHTML = text_area.value.length;
            if(display_sms.type)
                display_sms.value = Math.ceil(text_area.value.length/160);
            else
                display_sms.innerHTML = Math.ceil(text_area.value.length/160);
          }
        }
        //-->
        </script> 
    	 <?php
     
            echo "SMS:<div><span id=\"nb_sms\">0</span> (<span id=\"nb_chars\">0</span> chars)</div>";
            echo "<p><label for=\"send_sms_doc\">SMS au m&eacute;decin:</label><textarea name=\"send_sms_doc\" rows=\"5\" cols=\"50\" onKeyUp=\"updateCounters('text', 'nb_chars', 'nb_sms')\">SMS</textarea></p>";
      }
    }
    ?>
    Une idee ?
    J'ai fais deja pas mal de recherche avec prototype, evalscripts, eval, window.eval mais je n'arrive a rien !!!!

    Voila


  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Essaye avec :
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Le probleme ne vient pas de la, l'appel fonctionne correctement puique mon textarea apparait bien lorsque je clique sur le bouton radio oui.
    Ce qui ne marche pas c'est la fonction updateCounters qui est appelle dans le fichier send_sms.php.
    C'est un probleme qui semble recurent qui a une solution semble t il mais que je ne trouve pas malgre mes recherche de"puis plusieurs jours !!!

  4. #4
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Ta réponse contient un script qui n'est pas évalué, donc il ne peut pas s'exécuter.

    Regarde le lien suivant, ou cherche du coté de evalScript()
    http://www.developpez.net/forums/sho...9&postcount=18

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Je galere !!!! Je pense que la solution est effectivement la mais je galere vraiment pour l'adapter a mon probleme sachant que je trvaille avec prototype et je n'arrive pas a l'inserer correctement dans ma fonction getMedecin !!!

    Une idee pour moi ?


  6. #6
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Si ton problème c'est juste de charger ton script, pourquoi tu ne l'ajoutes pas dans un fichier externe au chargement de la page?

    Comme ca il serait disponible a chaque fois... En fait je comprend pas l'intéret de charger un script qui est juste une fonction, sans appel.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par DoubleU Voir le message
    En fait je comprend pas l'intéret de charger un script qui est juste une fonction, sans appel.
    Je ne comprends pas cette phrase !! J'appelle bien la fonction dans le textarea
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onKeyUp=\"updateCounters('text', 'nb_chars', 'nb_sms')
    qui me calcule le nombre de caractere frappe.

    Donc l'interet est la sinon effectivement ca serait idiot

    Sinon je vais essayer de le charger dans un fichier externe mais je ne pense pas que ca va resoudre le probleme.
    La solution est bien dans le lien quetu m'as fourni mais je n'arrive pas a l'integrer dans le code que j'ai mis au debut.

    Je vais continuer a essayer

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Comme souvent... tu as une page de test ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ceci dit, je relis ce fil depuis le début et comme DoubleU, il y a un truc que je ne parviens vraiment pas à comprendre :
    Ajax te sers à quoi exactement ???
    Quand même pas à créer un textarea ou à compter le nombre de caractères de ce textarea ???
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Bin si, mais c'est un bout de code au milieu d'un truc plus grand. Mon fichier prototype.js etant deja charge je l'utilise et ca m'evite de recharger ma page pour faire afficher mon textarea. Je pourrais peut etre le faire en javascript tout 'simplement' mais ce probleme est un probleme a part entiere pour des applications qui peuvent etre un peu plus complexe que j'utilise avec appel a une base de données pour mettre a jour différents champs par exemplealors trouver la solution la serait utile pour le reste et pour pas mal de personne vu que je ne suis pas le eul a avoir ce probleme.

    Sinon je n'ai pas de page en ligne car je bosse en local et je ne peux pas pour l'instant faire une mise a jour du prog

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ben écoute, plusieurs solutions possibles... Mais tu ne nous donnes pas suffisament de code pour tout voir...
    Ta fonction updateCounters() entre autres...
    Ensuite, fais attention au typage de variables, les tableaux post et get sont composés de chaines, mêmes si tu crois envoyer des nombres...
    Enfin, un sms peut faire jusqu'à 160 caractères, en comptant la rapidité de frappe, les corrections, les 'keyup' qui ne correspondent pas à un caractère etc... ça te fais combien de requêtes qui se croisent tout ça...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    La fonction updateCounters est deja donnée dans le premier post dans la troisieme partir du code sur le fichier php.

    Ensuite pour le reste, le probleme ne se pose pas vraiment car c'est un code qui marche nickel sur un appel simple dans la meme page. Je l'ai deja tese et ca ne pose aucun probleme.

    Le probleme ici vient simplement du ce script undpatecounters dans mon fichier php et passe par innerhtml n'est pas interprete.
    La solution est surement dans le lien donne par BoubleU un peu plus haut mais je n'arrive pas a l'integrer a mon code (manque de maitrise surement dans le javascript et/ou ajax) pour que ca fonctionne

Discussions similaires

  1. [MySQL] appel fonction javascript dans php
    Par diengkals dans le forum PHP & Base de données
    Réponses: 25
    Dernier message: 26/12/2012, 16h33
  2. Appel fonction JavaScript dans HTML
    Par audrey1912 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 09/08/2012, 11h51
  3. appel fonction javascript dans un fichier php
    Par Sharcoux dans le forum Langage
    Réponses: 2
    Dernier message: 02/08/2011, 13h11
  4. appeler fonction javascript dans code ASP
    Par skunkies dans le forum ASP
    Réponses: 10
    Dernier message: 18/12/2009, 16h12
  5. cgi/javascript : appeler fonction javascript dans code cgi, need help!
    Par Mr.ux dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/12/2007, 07h33

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