Aide fonction javascript popup+recup donnée

Résolu
drogba7213 Messages postés 1550 Statut Membre -  
Passarinho44 Messages postés 977 Statut Contributeur -
Bonjour,

Voila j'ai un soucis depuis plusieurs jours je n'arrive pas a véhiculer une donnée dans mon popup
Si vous voulez je peut vous donner une partie de mon code de la page concernée car hélas j'ai l'impression qu'il y aura que comme ca que quelqu'un pourra m'aider.

Aider moi svp

merci d'avance
Configuration: Windows 2003
Internet Explorer 7.0

39 réponses

  • 1
  • 2
Résumé de la discussion

Problème central : il s'agit d'envoyer la valeur sélectionnée d'un bouton radio dans une popup via JavaScript et window.open, mais l'ouverture de la fenêtre ne transmet pas correctement la donnée. Des réponses proposées se concentrent sur le diagnostic : tester et corriger le code, afficher temporairement la valeur avec alert, puis construire l'URL à partir du radio actif avant d'ouvrir. Des échanges explorent également une solution complète avec une fonction qui parcourt les éléments nommés 'check', retient la valeur du radio coché et ouvre ensuite la popup avec les paramètres adéquats. D'autres échanges signalent une limite lorsque la sélection porte sur plusieurs radios et suggèrent d'envisager une gestion distincte des cases à cocher pour étendre le même mécanisme.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    Oui je pense qu'un peu de code peut nous aider :)
    0
  2. drogba7213 Messages postés 1550 Statut Membre 22
     
    alors ...

    Je sais que ce n'est pas très propre je veut qu'il soit fonctionnel et après je le coderais proprment.

    En gros on voit bien qu'il y a un tableau et une colone radio je souhaite juste récupéré la valeur du radio coché par l'utilisateur quand il clic sur le bouton modifier ou supprimer.

    S'il vous faut plus d'exlpication dites le moi.

    <html>
    <!################################################################################################################################>

    <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

    <title>Utilisateur</title>

    <link rel="stylesheet" media="screen" type="text/css" title="identification" href="Application.css">

    <script language="Javascript">

    function ouvreFenetreModifier()
    {
    valeurCheck=document.form.check.value;
    valeurCheckDansLien="Modif_form.php?check="+valeurCheck;
    window.open(valeurCheckDansLien,"",config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');
    }

    function ouvreFenetreSupprimer()
    {
    valeurCheck=document.form.check.value;
    valeurCheckDansLien="Del_arret.php?check="+valeurCheck;
    window.open(valeurCheckDansLien,"",config='width=600, height=250, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');
    }
    </script>

    </head>

    <!################################################################################################################################>
    <body onload="runClock()">
    <form method="post" name="form">

    <!--------------- Bannière --------------->

    <div id="ban2" > </div>

    <!--------------- Boutton --------------->

    <div style="text-align: center;">

    <input name="lien4" value="Imprimer" onclick="edition();return false;"type="button">

    <input name="lien1" value="Arrêt chaîne" onclick="window.open('Form_utilisateur.php', 'utilisateur', config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button">

    <input type="button" name="lien2" value="Modifier" onClick="ouvreFenetreModifier();">

    <input type="button" name="lien3" value="Supprimer" onClick="ouvreFenetreSupprimer();">

    </div>

    <br>

    <!--------------- Heure défilant --------------->

    <div id="time"></div>
    <!--------------- Tableau de gestion des arrêts chaîne --------------->
    <?php

    require('Connexion.php');
    require('Requete.php');

    //--------------- Requete du tableau des arrêts chaîne ---------------//

    $sql0="SELECT * FROM ARRET_CHAINE WHERE DEBUT =#$date#";

    $rs = odbc_exec($conn,$sql0) or die('Erreur SQL : <br />'.$sql0);

    //--------------- Tableau des arrêts chaîne ---------------//

    echo "<div style='overflow-y: scroll; height: 305'> ";

    echo "<table border='0' cellpadding='0' cellspacing='0' width='500'>";
    echo "<tbody>";
    echo "<tr>";

    echo "<table style='width: 968px; height: 60px;' border='5' cellpadding='2' cellspacing='1'>"; // Taille du tableau //
    echo "<tbody>";

    echo "<tr>";
    echo "<td class='table-titre' colspan='9'> Ouverture: $ouverture Cadence: $cadence Taktime: $total </td>";
    echo "</tr>";

    echo "<tr>";
    echo "<td class='table-entete-centre' width='20'>Choix</td>";
    echo "<td class='table-entete-centre' width='20'>Type</td>";
    echo "<td class='table-entete-centre' width='20'>Début</td>";
    echo "<td class='table-entete-centre' width='20'>Fin</td>";
    echo "<td class='table-entete-centre' width='20'>Constat</td>";
    echo "<td class='table-entete-centre' width='20'>Demande </td>";
    echo "<td class='table-entete-centre' width='20'>Cause</td>";
    echo "<td class='table-entete-centre' width='20'>Information</td>";
    echo "<td class='table-entete-centre' width='20'>Imputation</td>";
    echo "</tr>";

    while (odbc_fetch_row($rs))
    {
    $CHOIX = odbc_result($rs,"NUMERO_ARRET_CHAINE");
    $TYPE=odbc_result($rs,"TYPE");
    $DEBUT=odbc_result($rs,"HEURE_DEBUT");
    $FIN=odbc_result($rs,"HEURE_FIN");
    $CONSTAT=odbc_result($rs,"CONSTAT");
    $DEMANDE=odbc_result($rs,"DEMANDE");
    $CAUSE=odbc_result($rs,"CAUSE");
    $INFO=odbc_result($rs,"COMPLEMENT_INFORMATION");
    $IMPUTATION=odbc_result($rs,"IMPUTATION");

    echo "<tr>";
    echo "<td class='table-ligne1-centre' width='100'> <input type=\"radio\" name=\"check\" value='".$CHOIX."'> </td>";
    echo "<td class='table-ligne1-centre' width='100'>$TYPE</td>";
    echo "<td class='table-ligne1-centre' width='100'>$DEBUT</td>";
    echo "<td class='table-ligne1-centre' width='100'>$FIN</td>";
    echo "<td class='table-ligne1-centre' width='100'>$CONSTAT</td>";
    echo "<td class='table-ligne1-centre' width='100'>$DEMANDE</td>";
    echo "<td class='table-ligne1-centre' width='100'>$CAUSE</td>";
    echo "<td class='table-ligne1-centre' width='100'>$INFO</td>";
    echo "<td class='table-ligne1-centre' width='100'>$IMPUTATION</td>";
    echo "</tr>";
    }

    echo "</tbody>";
    echo "</table>";

    echo "</tr>";
    echo "</tbody>";
    echo "</table>";

    echo "</div>";

    //--------------- Tableau des informations générales de la journée ---------------//

    echo "<br>";

    echo "<table border='0' cellpadding='0' cellspacing='0' width='500'>";
    echo "<tbody>";

    echo "<table style='width: 500px; height: 90px;' border='5' cellpadding='2' cellspacing='1'>";

    echo "<tr>";
    echo "<td class='table-titre' colspan='13'> Infos en temps réel </td>";
    echo "</tr>";

    //--------------- En tete de colonne ---------------//

    echo "<tr>";
    echo "<td class='table-entete' width='1'>Nombre d'arrêt </td>";
    echo "<td class='table-entete' width='1'>Durée perdu </td>";
    echo "<td class='table-entete-centre' width='20'>Pertes TA </td>";
    echo "<td class='table-entete-centre' width='20'></td>";
    echo "<td class='table-entete-centre' width='20'>Info </td>";
    echo "<td class='table-entete-centre' width='20'>Trou </td>";
    echo "<td class='table-entete-centre' width='20'></td>";
    echo "<td class='table-entete-centre' width='50'>Durée total perdu </td>";
    echo "<td class='table-entete-centre' width='50'>TA total perdu </td>";
    echo "</tr>";

    //--------------- RESULTATS ---------------//

    echo "<tr>";
    echo "<td class='table-ligne1-centre' width='100'> $my_array[0] </td>";
    echo "<td class='table-ligne1-centre' width='100'> $dureeperdu </td>";
    echo "<td class='table-ligne1-centre' width='100'> $perteTA </td>";
    echo "<td class='table-ligne1-centre' width='2'></td>";
    echo "<td class='table-ligne1-centre' width='100'> $dureeinfo </td>";
    echo "<td class='table-ligne1-centre' width='100'> $resultat </td>";
    echo "<td class='table-ligne1-centre' width='2'></td>";
    echo "<td class='table-ligne1-centre' width='100'> $totalduree </td>";
    echo "<td class='table-ligne1-centre' width='100'> $pertetotaleTA </td>";
    echo "</tr>";

    echo "</tbody>";

    echo "</table>";

    //--------------- Fermeture de la bdd ---------------//

    odbc_close($conn);

    ?>

    <!--------------- Fin page utilisateur --------------->
    </form>
    </body>

    </html>
    0
  3. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    Essaie de rajouter
    alert(valeuCheck); 

    entre
    valeurCheck=document.form.check.value;

    et
    valeurCheckDansLien="Modif_form.php?check="+valeurCheck; 

    Pour voir déjà si tu récupère bien la bonne valeur.

    Après dis moi, tu as quoi dans la barre d'adresse de la fenêtre qui apparait?
    Parce que à première vu ça devrait fonctionner même si je ne connais pas toutes les subtilités de la fonction window.open()
    0
  4. drogba7213 Messages postés 1550 Statut Membre 22
     
    donc depuis que j'ai rajouter la ligne j'ai une erreur qui me dit undefinned

    et quand la fenetre s'ouvre

    la barre d'adresse est

    http://127.0.0.1/Logiciel/Modif_form.php?check=undefined
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    Pour récupérer un objet en Javascript, il est plutot conseillé d'utiliser la fonction getElementById
    Donc remplace ton :
    <input type=\"radio\" name=\"check\" value='".$CHOIX."'>

    par :
    <input type=\"radio\" id=\"check\" name=\"check\" value='".$CHOIX."' />

    Et pour récupérer la valeur tu remplaces :
    valeurCheck=document.form.check.value; 

    par :
    valeurCheck=document.getElementById('check').value;

    Et enfin tu essaies d'afficher avec le
    alert(valeurCheck);

    que je t'ai mis tout à l'heure

    Je ne sais pas si ça va changer grand chose ... Mais ça ne coute rien d'essayer ^^

    Perso j'ai fait ce petit test :
    <input type="radio" id="test" value="teeest" />
    <input type="button" value="test" onclick="alert(document.getElementById('test').value);" />

    Et j'ai bien une petite popup avec teeest
    0
  7. drogba7213 Messages postés 1550 Statut Membre 22
     
    donc j'ai tout modifier et ....

    J'y est cru un instant mais non

    Ca me renvoie toujours le meme est ce normal?

    Meme si ca ne fonctionne pas au moins il y a de l'amélioration puisque déja je récupère une valeur ca fait plaisir.

    Par conttre je ne vois pas pourquoi il récupère que la première
    bizarre non?
    0
  8. drogba7213 Messages postés 1550 Statut Membre 22
     
    vous etes la?
    0
  9. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    Oui c'est normal, ta fonction ne sait pas quel bouton radio choisir alors elle choisit le premier..

    Il faut que tu les différencie et que tu lui précise laquelle choisir
    0
  10. drogba7213 Messages postés 1550 Statut Membre 22
     
    vous avez un conseil a me donner??
    car je ne vois pas trop comment appellé un bouton radio dans une boucle...
    0
  11. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    Alors le mieux je pense est de lui donner un :
    id=\"check_" . $i . "\"
    et d'incrémenter ce $i à chaque ligne du tableau (donc à chaque tour dans la boucle des résultats)
    Ensuite en Javascript, récupérer la valeur avec document.getElementById('check_' + i).value où i sera incrémenté comme le $i dans une boucle.

    Après pour chaque valeur, il faut vérifier si le bouton radio est bien sélectionné (ça je ne sais pas faire par contre :s )

    Et s'il est sélectioné, tu le met dans la variable valeurCheck.
    0
  12. drogba7213 Messages postés 1550 Statut Membre 22
     
    Voila j'ai un petit peu avancer et je vien de voir ton post qui correspond a ma réflexion

    alors dans le tableau je fais

    echo "<td class='table-ligne1-centre' width='100'> <input type=\"radio\" id=\"check_" . $i++ . "\" name=\"check\" value='".$CHOIX."' /> </td>";

    et j'ai modifié ma fonction

    function ouvreFenetreModifier()
    {
    valeurCheckDansLien=""
    TabChecks=document.getElementsByName('check');
    TCL=TabChecks.length();
    for(i=0;i<TCL;i++){ // ici on parcourre les elements pour savoir lequel est coché
    if(TabChecks[i].checked){
    valeurCheckDansLien="Modif_form.php?check="+TabChecks[i].value;
    }
    if(valeurCheckDansLien.length>0){// si un radio est coché
    window.open(valeurCheckDansLien,"","");
    }
    else {alert("pas de checks selectionné !")} //si pas de radio coché

    }

    Alors vu que j'y connais rien en JS c'est du bidouillage bref j'espèrais qu'elle fonctionne mais hélas la fenetre quand je clic sur le bouton modifier ne s'ouvre

    sauriez vous pourquoi?
    0
    1. Passarinho44 Messages postés 977 Statut Contributeur 132
       
      Je vais reprendre ton code, le tester et je vais essayer de le corriger ^^
      0
  13. drogba7213 Messages postés 1550 Statut Membre 22
     
    je te le remet en entier alors?

    <html>
    <!################################################################################################################################>

    <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

    <title>Utilisateur</title>

    <link rel="stylesheet" media="screen" type="text/css" title="identification" href="Application.css">

    <script language="Javascript">

    function ouvreFenetreModifier()
    {
    valeurCheckDansLien=""
    TabChecks=document.getElementsByName('check');
    TCL=TabChecks.length();
    for(i=0;i<TCL;i++){ // ici on parcourre les elements pour savoir lequel est coché
    if(TabChecks[i].checked){
    valeurCheckDansLien="Modif_form.php?check="+TabChecks[i].value;
    }
    if(valeurCheckDansLien.length>0){// si un radio est coché
    window.open(valeurCheckDansLien,"","");
    }
    else {alert("pas de checks selectionné !")} //si pas de radio coché

    }

    function ouvreFenetreSupprimer()
    {
    valeurCheck=document.getElementById('check').value;
    valeurCheckDansLien="Del_arret.php?check="+valeurCheck;
    window.open(valeurCheckDansLien,"",config='width=600, height=250, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');
    }
    </script>

    </head>

    <!################################################################################################################################>
    <body onload="runClock()">
    <form method="post" name="form">

    <!--------------- Bannière --------------->

    <div id="ban2" > </div>

    <!--------------- Boutton --------------->

    <div style="text-align: center;">

    <input name="lien1" value="Arrêt chaîne" onclick="window.open('Form_utilisateur.php', 'utilisateur', config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button">
      
    <input type="button" name="lien2" value="Modifier" onClick="ouvreFenetreModifier();">
      
    <input type="button" name="lien3" value="Supprimer" onClick="ouvreFenetreSupprimer();">
      
    <input name="lien4" value="Imprimer" onclick="edition();return false;"type="button">

    </div>

    <br>

    <!--------------- Heure défilant --------------->

    <div id="time"></div>
    <!--------------- Tableau de gestion des arrêts chaîne --------------->
    <?php

    require('Connexion.php');
    require('Requete.php');

    //--------------- Requete du tableau des arrêts chaîne ---------------//

    $sql0="SELECT * FROM ARRET_CHAINE WHERE DEBUT =#$date#";

    $rs = odbc_exec($conn,$sql0) or die('Erreur SQL : <br />'.$sql0);

    //--------------- Tableau des arrêts chaîne ---------------//

    echo "<div style='overflow-y: scroll; height: 305'> ";

    echo "<table border='0' cellpadding='0' cellspacing='0' width='500'>";
    echo "<tbody>";
    echo "<tr>";

    echo "<table style='width: 968px; height: 60px;' border='5' cellpadding='2' cellspacing='1'>"; // Taille du tableau //
    echo "<tbody>";

    echo "<tr>";
    echo "<td class='table-titre' colspan='9'> Ouverture: $ouverture &nbsp&nbsp&nbsp&nbsp Cadence: $cadence &nbsp&nbsp&nbsp&nbsp Taktime: $total </td>";
    echo "</tr>";

    echo "<tr>";
    echo "<td class='table-entete-centre' width='20'>Choix</td>";
    echo "<td class='table-entete-centre' width='20'>Type</td>";
    echo "<td class='table-entete-centre' width='20'>Début</td>";
    echo "<td class='table-entete-centre' width='20'>Fin</td>";
    echo "<td class='table-entete-centre' width='20'>Constat</td>";
    echo "<td class='table-entete-centre' width='20'>Demande </td>";
    echo "<td class='table-entete-centre' width='20'>Cause</td>";
    echo "<td class='table-entete-centre' width='20'>Information</td>";
    echo "<td class='table-entete-centre' width='20'>Imputation</td>";
    echo "</tr>";

    while (odbc_fetch_row($rs))
    {
    $CHOIX = odbc_result($rs,"NUMERO_ARRET_CHAINE");
    $TYPE=odbc_result($rs,"TYPE");
    $DEBUT=odbc_result($rs,"HEURE_DEBUT");
    $FIN=odbc_result($rs,"HEURE_FIN");
    $CONSTAT=odbc_result($rs,"CONSTAT");
    $DEMANDE=odbc_result($rs,"DEMANDE");
    $CAUSE=odbc_result($rs,"CAUSE");
    $INFO=odbc_result($rs,"COMPLEMENT_INFORMATION");
    $IMPUTATION=odbc_result($rs,"IMPUTATION");

    echo "<tr>";
    echo "<td class='table-ligne1-centre' width='100'> <input type=\"radio\" id=\"check_" .$i++. "\" name=\"check\" value='".$CHOIX."' /> </td>";
    echo "<td class='table-ligne1-centre' width='100'>$TYPE</td>";
    echo "<td class='table-ligne1-centre' width='100'>$DEBUT</td>";
    echo "<td class='table-ligne1-centre' width='100'>$FIN</td>";
    echo "<td class='table-ligne1-centre' width='100'>$CONSTAT</td>";
    echo "<td class='table-ligne1-centre' width='100'>$DEMANDE</td>";
    echo "<td class='table-ligne1-centre' width='100'>$CAUSE</td>";
    echo "<td class='table-ligne1-centre' width='100'>$INFO</td>";
    echo "<td class='table-ligne1-centre' width='100'>$IMPUTATION</td>";
    echo "</tr>";
    }

    echo "</tbody>";
    echo "</table>";

    echo "</tr>";
    echo "</tbody>";
    echo "</table>";

    echo "</div>";

    //--------------- Tableau des informations générales de la journée ---------------//

    echo "<br>";

    echo "<table border='0' cellpadding='0' cellspacing='0' width='500'>";
    echo "<tbody>";

    echo "<table style='width: 500px; height: 90px;' border='5' cellpadding='2' cellspacing='1'>";

    echo "<tr>";
    echo "<td class='table-titre' colspan='13'> Infos en temps réel </td>";
    echo "</tr>";

    //--------------- En tete de colonne ---------------//

    echo "<tr>";
    echo "<td class='table-entete' width='1'>Nombre d'arrêt </td>";
    echo "<td class='table-entete' width='1'>Durée perdu </td>";
    echo "<td class='table-entete-centre' width='20'>Pertes TA </td>";
    echo "<td class='table-entete-centre' width='20'></td>";
    echo "<td class='table-entete-centre' width='20'>Info </td>";
    echo "<td class='table-entete-centre' width='20'>Trou </td>";
    echo "<td class='table-entete-centre' width='20'></td>";
    echo "<td class='table-entete-centre' width='50'>Durée total perdu </td>";
    echo "<td class='table-entete-centre' width='50'>TA total perdu </td>";
    echo "</tr>";

    //--------------- RESULTATS ---------------//

    echo "<tr>";
    echo "<td class='table-ligne1-centre' width='100'> $my_array[0] </td>";
    echo "<td class='table-ligne1-centre' width='100'> $dureeperdu </td>";
    echo "<td class='table-ligne1-centre' width='100'> $perteTA </td>";
    echo "<td class='table-ligne1-centre' width='2'></td>";
    echo "<td class='table-ligne1-centre' width='100'> $dureeinfo </td>";
    echo "<td class='table-ligne1-centre' width='100'> $resultat </td>";
    echo "<td class='table-ligne1-centre' width='2'></td>";
    echo "<td class='table-ligne1-centre' width='100'> $totalduree </td>";
    echo "<td class='table-ligne1-centre' width='100'> $pertetotaleTA </td>";
    echo "</tr>";

    echo "</tbody>";

    echo "</table>";

    //--------------- Fermeture de la bdd ---------------//

    odbc_close($conn);

    ?>

    <!--------------- Fin page utilisateur --------------->
    </form>
    </body>

    </html>
    0
    1. Passarinho44 Messages postés 977 Statut Contributeur 132
       
      Non c'est bon juste la fonction et le bouton ça me suffit ^^
      0
  14. drogba7213 Messages postés 1550 Statut Membre 22
     
    lol spongebob c'est assez constructif comme réponse ca mdr

    Mais bon c'est ton choix
    0
  15. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    Ouas j'avoue spongebob ... :p

    Bon en attendant moi j'ai pas eu la flemme ^^

    Voilà la fonction qui fonctionne (chez moi en tout cas ^^ )

    function ouvreFenetreModifier()
    {
    valeurCheckDansLien="";
    TabChecks=document.getElementsByName('check');
    TCL=TabChecks.length;
    for( var i=0;i<TCL;i++) { // ici on parcourre les elements pour savoir lequel est coché
    if(TabChecks[i].checked) {
    valeurCheckDansLien="Modif_form.php?check="+TabChecks[i].value;
    }
    }
    if( valeurCheckDansLien.length > 0){// si un radio est coché
    widow.open(valeurCheckDansLien, "", "");
    } else {
    alert("pas de checks selectionné !") //si pas de radio coché
    }

    }

    J'ai remplacé TCL=TabChecks.length() ;
    par : TCL=TabChecks.length;

    Et je crois qu'il y avait une erreur dans l'ouverture/fermeture de boucle.
    La boucle for() { } englobait les si, ce qui posait problème ^^

    Dis moi si ça fonctionne

    Sinon ton bidouillage était pas mal :)
    0
  16. drogba7213 Messages postés 1550 Statut Membre 22
     
    Bah hélas je peut pas te dire si ca fonctionne car la fenetre quand je clique sur modifier la fenetre ne s'ouvre toujours pas
    0
  17. spongebob
     
    Merci de compatir avec mon choix, sinon sa avance ton pb d'une simplicité hors du commun ?
    0
  18. Passarinho44 Messages postés 977 Statut Contributeur 132
     
    Remplace ça : widow.open(valeurCheckDansLien, "", "");
    Par : alert(valeurCheckDansLien);

    Et dis moi déjà ce qui s'affiche dans la popup.
    0
  19. drogba7213 Messages postés 1550 Statut Membre 22
     
    hélas ca avance mais on ne voit pas le résultat lol

    C'est si simple que ca???
    0
  20. drogba7213 Messages postés 1550 Statut Membre 22
     
    désolé j'avais pas vu ta réponse lol

    Rien ne se passe toujours pas de popup qui s'ouvre
    0
  • 1
  • 2