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

Langage PHP Discussion :

[PHP-JS] Passer valeur dans fonction


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Points : 28
    Points
    28
    Par défaut [PHP-JS] Passer valeur dans fonction
    Salut à tous,

    Je suis sur un problème qui me rend fou depuis ce matin. Voilà : je désire récupérer une variable PHP et envoyer celle-ci en paramètre d'une fonction Javascript pour déclencher un traitement. L'action est initiée par le changement d'une liste déroulante dans un formulaire... et bien sûr, il ne se passe rien ! Quelqu'un pourrait-il m'aider ?

    Voici un extrait de mon 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
     
    echo '<form enctype="multipart/form-data" method="post"
    name="form_priv" action="suivant.php">';
     
    echo '<script language="JavaScript">function traiter(utilisateur) {';
    echo 'document.write("<input type=\"hidden\" name=\"modifier\" value=\""
    + utilisateur + "\" />");';
    echo 'submit(form_priv);';
    echo '} </script>';
     
    [...]
     
    $utilisateur='Raymond';
     
    echo '<td><select name="modifier_utilisateur" onchange="traiter(',$utilisateur,');">
    <option>[...]</td>';
    Je crée la variable PHP $utilisateur dans laquelle je stocke le nom "Raymond", puis au changement de la liste (onchange) j'appelle la fonction "traiter" au-dessus qui doit prendre pour argument "Raymond", créer un champ caché avec la valeur "Raymond" puis valider le formulaire (submit). Mais ça ne valide même pas... Une idée ?


    Merci d'avance pour votre aide !

    Tarnyko

  2. #2
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Pourquoi utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    enctype="multipart/form-data"
    un upload de fichier est prévu ?

    erreur sur le forum ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td><select name="modifier_utilisateur" onchange="traiter(',$utilisateur,');">

    c'est mieux avec des points ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td><select name="modifier_utilisateur" onchange="traiter('.$utilisateur.');">
    Zend PHP5 Certification
    MySQL 4 Core Certification

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    Merci pour ta réponse !

    Je me suis trompé de forum ? J'ai bien regardé, comme je n'ai pas vu de forum "JavaScript" et que ma page est en PHP....

    Grâce à ton idée, j'ai maintenant un retour dans la console d'erreurs :

    'Raymond' is undefined

    Je ne suis vraiment pas bon... Qu'est-ce-que ça signifie ?

    Merci, Tarnyko

  4. #4
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td><select name="modifier_utilisateur" onchange="traiter(\''.$utilisateur.'\');">


    ton select est dans quelle form ?

    tu peux donner ton code un peu plus clairement... ça m'a l'air mélangé vu comme ça
    Zend PHP5 Certification
    MySQL 4 Core Certification

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    Dans celui dans l'entête est cité plus haut. Je n'ai qu'un seul formulaire, contenant une seule table avec plusieurs éléments actifs. Je ne peux pas te le mettre en entier car il y a 2 pages entre :-).

    J'ai changé de tactique. Voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo '<script language="JavaScript">var java_utilisateur="'.$utilisateur.'";
    </script>';
    echo '<td><select name="modifier_utilisateur"
    onchange="traiter(java_utilisateur);">
    <option>[....]</option></select></td>';
    Ce coup-ci, je crée une variable pure JavaScript "utilisateur_java" dans laquelle je mets "Raymond", puis je passe la variable en argument de "traiter".
    L'erreur est différente :

    Object doesn't support this property or method.

    Merci à toi, Tarnyko

  6. #6
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td><select name="modifier_utilisateur" onchange="traiter(java_utilisateur);">
    java_utilisateur ne va pas être reconnu.


    Mais dit moi tu souhaites faire quoi exactement parce que jusque là ça me parrait un peu obscure.

    Les echo qui écrivent la fonction javascript sont-ils excutés selon une condition ?
    Zend PHP5 Certification
    MySQL 4 Core Certification

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    Oui. Les echo ne se produisent que lorsqu'une fonction sql SELECT passe sur un rang précis dans une table MySQL. Il s'agit du rang contenant la donnée "nom utilisateur". La variable $utilsateur est renseignée grâce à un "mysql_fetch_row".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for ($i=0; $i<(mysql_numrows($req)); $i++)
      { $ligne_resultat = mysql_fetch_row($req);
        echo '<tr align="center">';
        foreach($ligne_resultat as $rang)
          {
              if (i==66) $utilisateur=$rang;
    Après un essai sans PHP, le code suivant fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script language="JavaScript">function traiter(utilisateur) {
    document.write("<input type=\"text\" name=\"modifier\" value=\""
    + utilisateur + "\" />");
    }
     
    var java_utilisateur="Raymond";
    traiter(java_utilisateur);
     
    </script>
    Alors pourquoi pas l'autre ? Mystère.

  8. #8
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td><select name="modifier_utilisateur" onchange="traiter(java_utilisateur);">
    java_utilisateur n'est pas reconnu en tant que variable javascript

    contrairement à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script language="JavaScript">function traiter(utilisateur) {
    document.write("<input type=\"text\" name=\"modifier\" value=\""
    + utilisateur + "\" />");
    }
     
    var java_utilisateur="Raymond";
    traiter(java_utilisateur);
     
    </script>
    Zend PHP5 Certification
    MySQL 4 Core Certification

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    OK... Bon, prise de tête pour prise de tête, autant s'en créer sans JavaScript... J'ai abandonné. Merci pour ton aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. passer valeur dans le même fichier
    Par ldiaz dans le forum Langage
    Réponses: 4
    Dernier message: 27/01/2013, 18h07
  2. [PHP-JS] Passer une valeur $_POST dans un formulaire
    Par ddami1 dans le forum Langage
    Réponses: 10
    Dernier message: 18/07/2008, 21h05
  3. Réponses: 1
    Dernier message: 15/04/2008, 18h36
  4. [PHP-JS] Passer une variable dans une fonction
    Par Ziltoid dans le forum Langage
    Réponses: 1
    Dernier message: 25/10/2007, 09h18
  5. Réponses: 3
    Dernier message: 28/09/2007, 16h58

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