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 et frameworks PHP Discussion :

Récupérer la valeur de retour d'une fonction JS


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut Récupérer la valeur de retour d'une fonction JS
    Bonjour,

    J'ai un bouton généré en PHP dont le click provoque l'appel à une fonction JS. Cette fonction récupère la valeur de deux input de type text. Elle les concatène puis retourne le résultat.

    Le clic sur le bouton est en fait sensé insérer cette valeur de retour dans une div. Mon problème est que ça ne fonctionne pas.

    L'appel de la fonction JS, la concaténation des champs input et leur affichage dans un alert fonctionne mais pas l'insertion de la valeur de retour dans la div.

    Pourquoi ?

    Voici le code :
    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
     
    <?php echo javascript_tag("
    	function getNotifierNameAndTitle()
    	{
    		alert($('newNotifierName').value.concat(', ').concat($('newNotifierTitle').value)).concat('<br />');
    		return $('newNotifierName').value.concat(', ').concat($('newNotifierTitle').value).concat('<br />');
    	}
    ") ?>
     
     	<?php
     		echo button_to_function('Add',
    			update_element_function('notifiers',
    				array(
    					'position' => 'after',
    			  		'content'  =>  "<script>getNotifierNameAndTitle()</script>",
    				)
    			)
    		);
    	?>
    Merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    PHP etant executé sur le serveur, il a fini depuis longtemps son travail quand tu cliques sur le bouton.

    Si tu veux faire interagir PHP et Javascript il faut te pencher sur Ajax.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut
    Je craignais justement de ne pas avoir été suffisamment clair.

    Je sais bien que PHP et JS ne s'executent pas du tout au même moment, ni au même endroit.

    PHP me sert ici à générer un bouton dans ma page et d'y associer une fonction JS.

    Ma fonction JS est d'ailleurs bien appelée lorsque je clique sur le bouton. Mon problème, c'est que la valeur de retour de cette fonction JS se "perd" alors que mon but est de l'insérer dans une div.

    A titre d'information et pour éclaircir ma problématique, le code généré et reçu par Firefox est le suivant :
    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
     
    <script type="text/javascript">
    //<![CDATA[
     
    	function getNotifierNameAndTitle()
    	{
    		//alert($('newNotifierName').value.concat(', ').concat($('newNotifierTitle').value)).concat('<br />');
    		return $('newNotifierName').value.concat(', ').concat($('newNotifierTitle').value).concat('<br />');
    	}
     
    //]]>
    </script>
    <h2 style="background-color:#DCE4FC; width:600px;">Incident notifiers</h3>
     
    	<div id='notifiers' style="height: 100px; width:600px; overflow:auto;">
    			</div>
     
    	<label for="newNotifierName">Notifier's name:</label>
      	<input type="text" name="newNotifierName" id="newNotifierName" value="Name" />	<label for="newNotifierTitle">Notifier's title:</label>
     	<input type="text" name="newNotifierTitle" id="newNotifierTitle" value="Title" />
     	<input onclick="$('notifiers').insert('&lt;script&gt;getNotifierNameAndTitle()&lt;/script&gt;','after');
    ; return false;" type="button" value="Add" />

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    ça ne serait pas plutot :

    a la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $('notifiers').insert
    ?
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut
    Non, le insert a été généré par une fonction php qui permet d'ajouter du contenu dans un id de la page html à l'aide de javascript.

  6. #6
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Je comprends rien a ton code , je pensais que tu utilisais jQuery rapport a la notation : $()

    Maintenant de ce que je vois dans ton onClick tu insers dans ton Div la valeur retournée par la fonction getNotifierNameAndTitle()

    Mais bon c'est pas très clair ...
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Par défaut
    Si j'ai bien compris, tu veux afficher la valeur de tes deux champs après ton formulaire ?
    Parce que si c'est le cas, il suffit de créer un div vide à l'endroit où tu veux afficher le résultat, et de lui insérer ce que tu veux avec les fonctions jQuery text() ou html().

  8. #8
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Citation Envoyé par Palca Voir le message
    Si j'ai bien compris, tu veux afficher la valeur de tes deux champs après ton formulaire ?
    Parce que si c'est le cas, il suffit de créer un div vide à l'endroit où tu veux afficher le résultat, et de lui insérer ce que tu veux avec les fonctions jQuery text() ou html().
    Apparement il y a deja un debut de ça , le div est celui la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <div id='notifiers' style="height: 100px; width:600px; overflow:auto;">
    			</div>
    Par contre le reste est vraiment écris étrangement .
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/12/2010, 20h52
  2. comment récupérer la valeur de retour d'une fonction
    Par sebac dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/02/2010, 09h28
  3. Réponses: 4
    Dernier message: 19/01/2009, 11h12
  4. Réponses: 5
    Dernier message: 14/06/2008, 13h30
  5. Question très bête : récupérer la valeur de retour d'une fct
    Par pekka77 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 28/10/2005, 17h57

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