Récupérer javascript dans requete php

Résolu
Bonjour,

Je voudrais savoir si quelqu'un sais comment récupérer une variable javascript dans une requete PHP svp ?

Voici mon code:

Formulaire:
<select name="id_client2" id="id_client2" onchange="voirclient();">
<?php while ($voir = mysql_fetch_assoc($req_clients_exec)) { ?>
<option value="<?php echo $voir['id_contact'];?>" ><?php echo $voir['societe'];?></option>
<?php } ?>
</select>


Code javascript qui récupère l'ID de la base de données:

<script language="javascript">
function voirclient() {
client_choisi = document.getElementById('id_client2'); 
id_contact = client_choisi.options[client_choisi.selectedIndex].value;
</script>


Et là, je souhaite récupérer donc ce ID déclaré dans javascript pour créer ma requète php, mais c'est là que ça coince:

<?php
mysql_select_db($bdd);
$req_choix = "SELECT * FROM contacts WHERE id_contact='<script>document.write(id_contact)</script>' ";
$req_choix_exec = mysql_query($req_choix);
$voir_choix = mysql_fetch_assoc($req_choix_exec);
?>


Si quelqu'un pourrait m'aider, ce serait vraiment super, car là je bloque.

Merci d'avance.

Création site Internet Antibes - www.jm-crea.com

13 réponses

  1. je liste les contacts dans le menu déroulant du formulaire

    <?php    
    mysql_select_db($bdd);    
    $req_client = "SELECT * FROM contacts ORDER BY societe ASC";    
    $req_clients_exec = mysql_query($req_client);    
    ?>    
    


    ensuite javascript + php:

    <script language="javascript">    
    function voirclient() {    
    client_choisi = document.getElementById('id_client2');     
    id_contact = client_choisi.options[client_choisi.selectedIndex].value;    
    } 
    </script>   
    
    <?php     
    $req_choix = "SELECT * FROM contacts WHERE id_contact='<script>document.write(id_contact)</script>' ";    
    $req_choix_exec = mysql_query($req_choix) or die(mysql_error());    
    $voir_choix = mysql_fetch_assoc($req_choix_exec);    
    ?>     
    
    


    Ca ne doit pourtant pas être si compliqué !!!

    Création site Internet Antibes - www.jm-crea.com
    1
    1. Contributeur
      Ma question, c'est comment tu lances ton php ? Sans parler de javascript et tout le reste. Imaginons une requête simple en php qui fonctionne... Comment elle se lance ? En même temps que la page lors du chargement ? Ou sinon l'utilisateur appuie sur un bouton ?
      0
  2. non, elle se lance dans le javascript, et le javascript se lance de cette manière:

    <select name="id_client2" id="id_client2" onchange="voirclient();">
    <?php while ($voir = mysql_fetch_assoc($req_clients_exec)) { ?>
    <option value="<?php echo $voir['id_contact'];?>" ><?php echo $voir['societe'];?></option>
    <?php } ?>
    </select>
    1
    1. Contributeur
      Et comment tu lances ton php avec javascript ?
      0
  3. Contributeur
    Bonjour,

    Pourquoi passer par du javascript pour récupérer l'id pour ensuite le remette dans du php ?
    0
    1. Car j'ai pas envie que la page se recharge, sinon, ça m'aurrais pris 2 sec. :)

      En fait, c'est surtout une question d'ergonomie.
      0
      1. autant faire une requète javascript avec XMLHttpRequest
        0
        1. Contributeur
          Ta requête php se trouve sur la même page ? Comment tu l'appelles alors ?
          0
          1. Non, utiliser XMLHttpRequest serait beaucoup trop long, je suis sur qu'il y a plus simple.

            Oui, la requete se trouve sur la même page.
            0
            1. j'ai essayé aussi:

              <script language="javascript">    
              function voirclient() {    
              client_choisi = document.getElementById('id_client2');     
              id_contact = client_choisi.options[client_choisi.selectedIndex].value;    
              } 
              
              
              <?php     
              $req_choix = "SELECT * FROM contacts WHERE id_contact='<script>document.write(id_contact)</script>' ";    
              $req_choix_exec = mysql_query($req_choix) or die(mysql_error());    
              $voir_choix = mysql_fetch_assoc($req_choix_exec);    
              ?>    
              </script>   
              
              0
              1. Là j'essaie:

                <script language="javascript">    
                function voirclient() {    
                client_choisi = document.getElementById('id_client2');     
                id_contact = client_choisi.options[client_choisi.selectedIndex].value;    
                
                <?php
                mysql_select_db($bdd); 
                $req_choix = "SELECT * FROM contacts WHERE id_contact='<script>document.write(id_contact)</script>' ";    
                $req_choix_exec = mysql_query($req_choix) or die(mysql_error());    
                $voir_choix = mysql_fetch_assoc($req_choix_exec);    
                ?>    
                document.getElementById('nom').value = '<?php echo $voir_choix['nom'];?>';
                } 
                
                </script>  
                


                marche pas non plus :(

                Je vais devenir fou!!
                0
                1. Contributeur
                  Ma question, c'est si jamais on oublie ton histoire d'id. Mets une valeur que tu sais être bonne. Ton php va fonctionner sous l'injonction de ton javascript ? Je ne crois pas non.

                  Et même si tu dis que tu ne veux pas de l'ajax, si tu ne veux pas recharger la page, tu n'auras pas le choix.
                  0
              2. si, j'ai essayé de remplacer:

                $req_choix = "SELECT * FROM contacts WHERE id_contact='<script>document.write(id_contact)</script>' "; 


                par

                $req_choix = "SELECT * FROM contacts WHERE id_contact='18' "; 


                et ça a marché parfaitement
                0
                1. Je crois que je ne vais pas me prendre là tête, je vais créer un menu déroulant dynamique en php, ce sera plus simple.

                  merci quand même pour votre aide.
                  0
                  1. C'est bon, j'ai fais autrement, alors la page se recharge, ce n'est pas trop ce que je voulais, mais bon, pas besoin d'appuyer sur un bouton.

                    Je mets ma solution au cas ou ça pourrait intéressé quelqu'un:

                    
                    <?php
                    //Requete pour appeler les contacts de la base de données listés dans un menu déroulant
                    mysql_select_db($bdd);
                    $req_client = "SELECT * FROM contacts ORDER BY societe ASC";
                    $req_clients_exec = mysql_query($req_client);
                    
                    //Requete pour afficher les informations dans les champs du formulaire 
                    $id_contact = $_GET['id_contact'];
                    $req_voir = "SELECT * FROM contacts WHERE id_contact='$id_contact'";
                    $req_voir_exec = mysql_query($req_voir);
                    $voir_contact = mysql_fetch_assoc($req_voir_exec);
                    ?>
                    
                    
                    <script language="javascript">    
                    function voirclient() {  
                    client_choisi = document.getElementById('id_client2');     
                    id_contact = client_choisi.options[client_choisi.selectedIndex].value;
                    document.location="ajouter-facture.php?&id_contact=" + id_contact ;
                    } 
                    
                    </script> 
                    
                    
                    
                    
                    

                    0