Récupérer javascript dans requete php

Résolu
Dge-06 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
Dge-06 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -
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

Dge-06 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   4
 
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
AssassinTourist Messages postés 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
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
Dge-06 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   4
 
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
AssassinTourist Messages postés 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
Et comment tu lances ton php avec javascript ?
0
AssassinTourist Messages postés 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
Bonjour,

Pourquoi passer par du javascript pour récupérer l'id pour ensuite le remette dans du php ?
0
Dge-06 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   4
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vordano Messages postés 1685 Date d'inscription   Statut Membre Dernière intervention   316
 
autant faire une requète javascript avec XMLHttpRequest
0
AssassinTourist Messages postés 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
Ta requête php se trouve sur la même page ? Comment tu l'appelles alors ?
0
Dge-06 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   4
 
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
Dge-06 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   4
 
en plein millieu
0
Dge-06 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   4
 
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
Dge-06 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   4
 
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
AssassinTourist Messages postés 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
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
Dge-06 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   4
 
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
Dge-06 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   4
 
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
Dge-06 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   4
 
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