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 :

Passer une value Javascript dans une URL


Sujet :

JavaScript

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Points : 45
    Points
    45
    Par défaut Passer une value Javascript dans une URL
    Bonjour à tous,

    Alors mon problème est je pense pas bien compliqué mais étant donné que je suis novice en développement, ça devient vite compliqué pour moi.

    En faites ce que je souhaite c’est récupérer la valeur d’un input type text, dans une url que je déclare dans une iframe. J’ai donc passé « +document.forms…. » (en gras dans mon code) dans mon Url mais apparemment il doit y avoir autre chose à faire parce que je ne récupère rien....

    Voici mon code ça sera peut être un peu plus parlant.....J'ai mis que la partie qui nous intéresse :

    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
     
     
     
    < ?PHP
     
     
     
    …..
     
    Echo “<input type=’textname=’toto’>”;
     
    ….
     
    Echo “<iframe src='fiche_ndf.php?login=$login&pass=$password2&nondf='+document.forms['formu'].elements['toto'].value'&classlign=$classlign'.....></iframe>";
     
    ….
     
    ?>
    je pense qu'il doit falloir rajouter les balises javascript mais j'ai essayé dans tous les sens mais ça ne fonctionne pas.

    Pouvez vous m'aider. Par avance merci de votre aide.

  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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    tes variables $ sont des variables php ? si oui tu as un problème de syntaxe pour la concaténation de l'url... Il faut garder à l'esprit ce qui relève de html et ce qui relève de php:

    pour un string php essaye d'utiliser plutot des quotes simples ce qui permet de conserver les doubles quotes pour le html (simple convention )

    :ce qui theporiquement devrait donner ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Echo '<iframe src="fiche_ndf.php?login='.$login.'&pass='.$password2&nondf="+document.forms['formu'].elements['toto'].value+"&classlign='.$classlign.'.....></iframe>';
    par contre le problème va se poser pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms['formu'].elements['toto'].value
    puisque cette ligne de code va être interprétée au chargement de la page et donc ton fomr ne sera pas encore instancié, il va falloir attibuer dynamiquement avec javascript le src de ton iframe ...
    A qule moment le src doit il être modifier ? tu soumets le form ?

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Points : 45
    Points
    45
    Par défaut
    Tout d'abord merci à toi de prendre le temps de m'aider....

    En faites c'est un peu tordu mon histoire ; pour tout t'expliquer mon iframe me sert uniquement pour "stocker" une page type d'impression qui est appelé via un bouton qui se trouve sur une modalbox. Depuis ma modalbox, sur le onclick de mon bouton impression, j'appelle une fonction printfiche(); construite comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function printfiche()
    {
    imprim.focus();
    window.print();
    }
    Et je lui indique d'imprimer la page de mon i frame, mais ce qu'il me manque c'est juste de pouvoir lui passer la référence de ma ligne, et c'est ce que je voulais faire via le paramètre passé en URL.

    En faites à la base quand la personne clique sur une ligne de mon tableau, j'ouvre une modalbox avec tout le détail de ma ligne, j'enregistre le N° de la ligne sélectionnée dans un input type='text' de ma page initiale pour la stocker. Je ne soumets pas le form.

    Enfin je sais pas si je suis compréhensible, je sais que c'est un peu tordu comme truc mais c'est le seul moyen que j'ai trouvé pour le moment, et il me manque que cette valeur à récupérer pour que tout marche.

  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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    a quoi te sert ta référence de ligne ???
    j'ai pas saisi ce point

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Points : 45
    Points
    45
    Par défaut
    Je me suis mal exprimé, Il s'agit d'une référence à moi (un N° de note de frais).

  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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    ça ne me dit pas ce que tu en fais ...

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Points : 45
    Points
    45
    Par défaut
    Je m'en sers dans la page indiquée dans le src de mon Iframe ;

    Cette valeur me sert comme paramètre dans ma requête de cette page pour afficher les données liées à la selection de la personne :

    .
    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
    ....
    $login=$_GET["login"];
    $password2=$_GET["pass"];
    $nondf=$_GET["nondf"];
    $pageec=$_GET["pageaf"];
    $classlign=$_GET["classlign"];
     
     
    $big_request1="SELECT PERSONNEL.NOM, PERSONNEL.PRENOM, PERSONNEL.MATRI, PERSONNEL.SECTION, ENTETE_Histo.NUMNDF, MODALITE.MODALITE_DEP, MOIS.MOIS, ENTETE_Histo.MONTANT, ENTETE_Histo.AVANCE, ENTETE_Histo.APAYER, ENTETE_Histo.CUMUL_KM_EnCours, ENTETE_Histo.DATE_VALIDATION
    FROM (MOIS INNER JOIN (MODALITE INNER JOIN (PERSONNEL INNER JOIN ENTETE_Histo ON PERSONNEL.MATRI = ENTETE_Histo.MATRICULE) ON MODALITE.codeModalite = ENTETE_Histo.codeModalite) ON MOIS.numMois = ENTETE_Histo.NumMois) INNER JOIN (TYPE_FRAIS INNER JOIN DETAIL_Histo ON TYPE_FRAIS.codeTypeFrais = DETAIL_Histo.codeTypeFrais) ON (ENTETE_Histo.DATE_CREATION = DETAIL_Histo.DATE_CREATION) AND (ENTETE_Histo.NUMNDF = DETAIL_Histo.NUMNDF) AND (ENTETE_Histo.MATRICULE = DETAIL_Histo.MATRICULE)
    WHERE (((ENTETE_Histo.NUMNDF)=$nondf))";
    $qbig_request1=odbc_exec ($connect4,$big_request1) or die ("Query requête birequest1 impossible");
    $rowbig_request1=odbc_fetch_array($qbig_request1);
    $big_nom1=$rowbig_request1["NOM"];
    $big_nom2=$rowbig_request1["PRENOM"];
    $big_nom3=$rowbig_request1["MATRI"];
    $big_nom4=$rowbig_request1["SECTION"];
    $big_nom5=$rowbig_request1["NUMNDF"];
    $big_nom6=$rowbig_request1["MODALITE_DEP"];
    $big_nom7=$rowbig_request1["MOIS"];
    $big_nom8=round ($rowbig_request1["MONTANT"],2);
    $big_nom9=$rowbig_request1["AVANCE"];
    $big_nom10=round ($rowbig_request1["APAYER"],2);
    $big_nom11=$rowbig_request1["CUMUL_KM_ENCOURS"];
    $pieces4=explode(" ",$rowbig_request1["DATE_VALIDATION"]);
    $dformat4=explode("-",$pieces4[0]);

  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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    il suffit de concaténer l'url comme dit ci dessus ...

    la question primordiale est donc sur quel évènement déclenches tu cette opération ...

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Points : 45
    Points
    45
    Par défaut
    Sur un événement "on click" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src=\"images\printer.jpg\" alt='Imprimer' onclick={toto=document.formreq.cpml.value;printfiche();}.....

  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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src=\"images\printer.jpg\" alt='Imprimer' onclick="document.getElementById('myframe').src='fiche_ndf.php?nondf='"+document.forms['formu'].elements['toto'].value+"'&classlign=$classlign'.....{toto=document.formreq.cpml.value;printfiche();"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <iframe id='myframe" src=''></iframe>";

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Points : 45
    Points
    45
    Par défaut
    C'est ce que j'ai essayé de faire en faisant ce que tu m'avais indiqué mais mon script ne s'éxécute pas ! Voilà ce que j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Echo '<iframe src="fiche_ndf.php?login='.$login.'&pass='.$password2.'&nondf="+document.forms['formu'].elements['toto'].value+"&classlign='.$classlign.'" style='width: 0; height: 0' id='imprim' name='imprim'></iframe>';

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Points : 45
    Points
    45
    Par défaut
    Excuses moi j'avais pas vu ta réponse juste avant, autant pour moi, j'essaye ce que tu viens de m'indiquer et je te dis.....

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Points : 45
    Points
    45
    Par défaut
    Merci pour ton aide !

    Je pense que j'applique mal le code que tu m'as donné parce que du coup il ne me trouve pas le lien indiqué dans le src. Voici ce que j'ai fait:

    Script 1 (=ma page initiale, celle qui contient le tableau avec toutes mes lignes :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <script language="JavaScript1.2">
    function printfiche()
    {
    imprim.focus();
    window.print();
    }
    </script>
    ....
    <form name='formreq'>
    <input type='text' name='cpml'>
    .....
    Echo "<iframe id=\"imprim\" style='width: 0; height: 0' name='imprim'></iframe>";
    ....

    Script 2 (=ma modalbox avec le détail) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ....
    echo "<img src='images\printer.jpg\' alt='Imprimer' onclick={document.getElementById('imprim').src=\"fiche_ndf.php?login=s082205&pass=171157&nondf=9157\";printfiche();} style='cursor=hand'>";
    ....
    J'ai mis les valeurs en dure dans le SRC pour pas m'occuper du problème de récupération des variables pour le moment.

    Le hic c'est que quand je clique sur mon bouton imprimer ça me lance bien une impression, mais l'impression d'une page blanche....

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Points : 45
    Points
    45
    Par défaut
    Après avoir testé ce que tu m'avais indiqué dans tous les sens je me suis rendu compte que cela fonctionnait mais uniquement au deuxième lancement de mon bouton impression.

    Lorsque je clique une première fois dessus, une première fenêtre d'impression s'ouvre, si je lance l'impression, j'obtiens une feuille blanche, par contre si je ferme la fenêtre d'impression et que je reclique sur mon impression, cela fonctionne.

    C'est comme si mon imprim.focus() ne fonctionnait qu'au bout du deuxième lancement !

    Avez vous une diée de comment je peux faire pour force mon focus sur mon iframe.

    Par avance merci de votre aide

  15. #15
    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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    mets un setTimeout de façon à attende l'instanciation de ta popup


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function printfiche()
    {
    if(imprime.document.body){
    imprim.focus();
    window.print();
    else{setTimeout(printfiche(),100);}
    }

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Points : 45
    Points
    45
    Par défaut
    Impeccable SpaceFrog, j'ai réussi à m'en sortir avec ton aide précieuse.

    Ce que j'ai finalement fait c'est intégrer le getElementById.src dans un événement onclick de mon tableau initial, comme ça le chargement du src de mon iframe se fait dès le départ quand la personne clique sur une ligne de mon tableau et après j'ai juste eu à définir mon focus sur mon iframe et lancer l'impression depuis ma modalbox, et ça fonctionne !

    Grand merci à toi en tous cas pour avoir pris le temps de me dépatouiller tout ça ,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo "<tr  height='17px'><a OnClick=\"document.getElementById('imprim').src='fiche_ndf.php?login=$login&pass=$password2&nondf=$fetch_numndf&classlign=$classlign';\";>

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  2. Réponses: 1
    Dernier message: 15/04/2008, 18h36
  3. Passer un tableau Javascript dans une action JAVA
    Par lili2704 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/08/2007, 11h44
  4. Réponses: 3
    Dernier message: 26/06/2006, 13h48
  5. [PHP-JS] une variable php dans une fonction javascript
    Par megapacman dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2006, 14h08

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