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 :

recuperer une variable apres un onclick


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut recuperer une variable apres un onclick
    Bonjour.

    j'ai un tableau avec pour chaque ligne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<tr class="zone" onclick="window.location.href(\'index2.php?page='.$page.'&edit=yes&IdProcess='.$donnees['Process'].'&id_action='. $donnees['Id'] .'\');"/>
    je recupere mes variables via $_POST en php.

    J'ai creer une petite fonction en javascript et je voulais recuperer une des valeurs dans le $post.....

    j'aimerais savoir la syntaxe a utiliser car j'ai déjà essayer pas mal de choses mais ca plante

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    post => form ou ajax

    pas possible dans l'url ...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    merci pour la réponse mais peux tu détailler un peu ?

    merci d'avance

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    en php pour recupérer du post tu dois an amont soit etre en provenant d'un formulaire ou d'un ajax en methode post
    avec un window.open tu ne peux recupérer que du get

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    concretement ....

    J'ai ma page acceuil.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
    <?php
        for ($numero = 1; $numero<$num_rows+1; $numero++)
        {
        $donnees = mysql_fetch_array($result);
        echo '<tr class="zone" onclick="window.location.href(\'index2.php?page='.$page.'&edit=yes&IdProcess='.$donnees['Process'].'&id_action='. $donnees['Id'] .'\');"/>
                    <td>' . $numero . '</td>
                    <td>' . $donnees['Process'] . '</td>
                    <td>' . $donnees['Problem'] . '</td>
                    <td>' . $donnees['Action'] . '</td>
                    <td>' . $donnees['Responsible'] . '</td>
                    <td>' . $donnees['Target'] . '</td>
                    <td>' . $donnees['Status'] . '</td>
                    <input type="hidden" id='.$donnees['Process'].' name="id_hidden" value="" />
              ';
        echo'</tr>';
        }
    ?>
    quand je clic sur une ligne cela me renvoie a la page edit.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
    (...)
    <script type='text/javascript'>
                go();
                </script>
     
                    <tr>
                        <td class=side>Process :</td>
                        <td class=info>
                           <div id='process' style='display:inline'>
                               <select name='I_process'>
                                      <option value='-1'>Choose process</option>
                               </select>
                           </div>
                        </td>
                    </tr>
    (...)
    la fonction go est quand a elle située dans la page index.php ( cette page inclu les autres pages )

    voici le script qui s'y trouve :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <script type='text/javascript'>
            function getXhr()
            {
            var xhr = null;
                if(window.XMLHttpRequest) // Firefox et autres
                xhr = new XMLHttpRequest();
                    else if(window.ActiveXObject)
                    { // Internet Explorer
    		try {xhr = new ActiveXObject("Msxml2.XMLHTTP"); }
                    catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
    		}
    		else
                    { // XMLHttpRequest non supporté par le navigateur
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    		xhr = false;
    		}
               return xhr;
    	}
     
    	/**
    	* Méthode qui sera appelée sur le click du bouton
    	*/
    	function go()
            {
    	var xhr = getXhr();
    	// On défini ce qu'on va faire quand on aura la réponse
    	xhr.onreadystatechange = function(){
    		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    		if(xhr.readyState == 4 && xhr.status == 200){
    			leselect = xhr.responseText;
    			// On se sert de innerHTML pour rajouter les options a la liste
    			document.getElementById('process').innerHTML = leselect;
    		}
    	}
    	// Ici on va voir comment faire du post
    	xhr.open("POST","ajaxprocess.php",true);
    	// ne pas oublier ça pour le post
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	// ne pas oublier de poster les arguments
    	// ici, l'id de l'auteur
     
    	sel = document.getElementById('line');
    	idline = sel.options[sel.selectedIndex].value;
     
     
            if (idline=="3G+") {idline="3GP";}
    	xhr.send("idLine="+idline);
    	}
    </script>
    et donc je voudrais rajouter a la derniere ligne de cette fonction ...

    xhr.send("idLine="+idline+"&Process="+$_POST[Process]);

    enfin c'est écrit vaguement mais je voudrais avoir la synstaxe pour l'ecrire correctement en js.

    j'espere avoir été clair ...

    Merci

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    js est interpété coté client...
    php coté serveur ...

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    js est interpété coté client...
    php coté serveur ...
    oui ca j'ai compris ...
    Logiquement mon adresse est interprétée avant donc j'ai htpp://index.php?process=4444


    donc mon script js devrait pouvoir récuperer cette valeur ?

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    dans quel script ??? ou ça ?

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    dans quel script ??? ou ça ?
    j'ai mis mon code plus haut ....

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    code qui comporte 3 scripts ...

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    dans le dernier...

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <script type='text/javascript'>
            function getXhr()
            {
            var xhr = null;
                if(window.XMLHttpRequest) // Firefox et autres
                xhr = new XMLHttpRequest();
                    else if(window.ActiveXObject)
                    { // Internet Explorer
    		try {xhr = new ActiveXObject("Msxml2.XMLHTTP"); }
                    catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
    		}
    		else
                    { // XMLHttpRequest non supporté par le navigateur
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    		xhr = false;
    		}
               return xhr;
    	}
     
    	/**
    	* Méthode qui sera appelée sur le click du bouton
    	*/
    	function go()
            {
    	var xhr = getXhr();
    	// On défini ce qu'on va faire quand on aura la réponse
    	xhr.onreadystatechange = function(){
    		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    		if(xhr.readyState == 4 && xhr.status == 200){
    			leselect = xhr.responseText;
    			// On se sert de innerHTML pour rajouter les options a la liste
    			document.getElementById('process').innerHTML = leselect;
    		}
    	}
    	// Ici on va voir comment faire du post
    	xhr.open("POST","ajaxprocess.php",true);
    	// ne pas oublier ça pour le post
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	// ne pas oublier de poster les arguments
    	// ici, l'id de l'auteur
     
    	sel = document.getElementById('line');
    	idline = sel.options[sel.selectedIndex].value;
     
     
            if (idline=="3G+") {idline="3GP";}
    	xhr.send("idLine="+idline);
    	}
    </script>
    celui ou je veux récuperer ma valeur $_POST

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Désolé je ne comprend absolument rien à ton besoin
    tu fais un ajax et tu veux recupérer un post ???


  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    Bon je vais réexpliquer lol..

    J'ai une page index :

    avec en <head> ce script
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <script type='text/javascript'>
            function getXhr()
            {
            var xhr = null;
                if(window.XMLHttpRequest) // Firefox et autres
                xhr = new XMLHttpRequest();
                    else if(window.ActiveXObject)
                    { // Internet Explorer
    		try {xhr = new ActiveXObject("Msxml2.XMLHTTP"); }
                    catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
    		}
    		else
                    { // XMLHttpRequest non supporté par le navigateur
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    		xhr = false;
    		}
               return xhr;
    	}
     
    	/**
    	* Méthode qui sera appelée sur le click du bouton
    	*/
    	function go()
            {
    	var xhr = getXhr();
    	// On défini ce qu'on va faire quand on aura la réponse
    	xhr.onreadystatechange = function(){
    		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    		if(xhr.readyState == 4 && xhr.status == 200){
    			leselect = xhr.responseText;
    			// On se sert de innerHTML pour rajouter les options a la liste
    			document.getElementById('process').innerHTML = leselect;
    		}
    	}
    	// Ici on va voir comment faire du post
    	xhr.open("POST","ajaxprocess.php",true);
    	// ne pas oublier ça pour le post
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	// ne pas oublier de poster les arguments
    	// ici, l'id de l'auteur
     
    	sel = document.getElementById('line');
    	idline = sel.options[sel.selectedIndex].value;
     
     
            if (idline=="3G+") {idline="3GP";}
    	xhr.send("idLine="+idline);
    	}
    </script>
    cette page index....fait appel a des includes de page php.

    par defaut elle charge acceuil.php

    dans cette page acceuil.php

    il y a mon tableau ( voir code si dessous ) et un onglet qui me renvoie sur une page add_action.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
    <?php
        for ($numero = 1; $numero<$num_rows+1; $numero++)
        {
        $donnees = odbc_fetch_array($result);
        echo '<tr class="zone" onclick="window.location.href(\'index2.php?page='.$page.'&edit=yes&I_process='.$donnees['Process'].'&id_action='. $donnees['Id'] .'\');"/>
                    <td>' . $numero . '</td>
                    <td>' . $donnees['Process'] . '</td>
                    <td>' . $donnees['Problem'] . '</td>
                    <td>' . $donnees['Action'] . '</td>
                    <td>' . $donnees['Responsible'] . '</td>';
                    $tab_target_split=split_target($donnees['Target']);
     
            echo'   <td>' . $tab_target_split[2].'-'.$tab_target_split[1]. '-' .$tab_target_split[0] . '</td>
                    <td>' . $donnees['Status'] . '</td>
    
              ';
        echo'</tr>';
        }
    ?>

    1) soit je clic sur une de mes lignes et cela me charge la page edit.php
    2) soit je clic sur l'onglet et je tombe sur la page add.php

    ------------------

    Dans tout les cas je tombe sur un formulaire :
    si c'est l'option
    1) je dois récuperer les valeurs de ma ligne cliquée
    2) j'affiche mon formulaire avec des champs vierge ( OK )

    Pour l'option n°1

    j'ai donc le formulaire :
    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
    35
    36
    37
    38
    <tr>
                        <td class=side>Line :</td>
                        <td class=info><select name="I_line" id='line' onchange='go()'>
                                                                     <?php for($i=1;$i<=sizeof($tab_line);$i++)
                                                                     {
                                                                     echo '<option value="'.$tab_line[$i].'"';
                                                                        if(isset($_POST['line']) && $_POST['line'] == $tab_line[$i])
                                                                        {
                                                                        echo 'selected="selected"';
                                                                        }
                                                                        else
                                                                        {
                                                                            if( $donnees['Line']==$tab_line[$i] )
                                                                            {
                                                                            echo 'selected="selected"';
                                                                            }
     
                                                                        }
                                                                     echo '>'.$tab_line[$i].'</option>';
                                                                     }
                                                                     ?>
                                        </select>
    		</tr>
     
                <script type='text/javascript'>
                go();
                </script>
     
                    <tr>
                        <td class=side>Process :</td>
                        <td class=info>
                           <div id='process' style='display:inline'>
                               <select name='I_process'>
                                      <option value='-1'>Choose process</option>
                               </select>
                           </div>
                        </td>
                    </tr>
    alors en toute logique :

    il charge le select Line puis il lance le script go() qui lui charge les valeurs du process associée au select Line.... ca c'est OK aussi.

    Le select line est bien "selected=selected" sur la bonne Line
    Mais le select process est positionné sur la premiere valeur.... et je voudrais quil me le mette en selected=selected

    j'ai essayé d'etre le plus clair lool

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if(isset($_POST['line']) && ($_POST['line'] == $tab_line[$i]))
    c'est pas ce que tu testes là ?

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    oui pou la Line ca fonctionne....

    Mais pour le process c'est le script js qui doit le charger. go();

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    si tu ne l'as pas auparavant passé à la page client dans un input hidden par exemple ...
    il doit être coté client !

Discussions similaires

  1. Recuperation de la valeur d'une variable après un sbmjob
    Par bouhlal_badre dans le forum AS/400
    Réponses: 7
    Dernier message: 06/06/2013, 13h26
  2. recuperer une variable dans href avec onclick
    Par marry dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/05/2009, 09h51
  3. Réponses: 2
    Dernier message: 23/10/2005, 18h05
  4. Réponses: 5
    Dernier message: 08/09/2005, 20h33
  5. comment recuperer une variable dans flash
    Par krépuscul dans le forum Flash
    Réponses: 30
    Dernier message: 16/10/2003, 09h40

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