Envoi de requête grâce à un select

Envoi de requête grâce à un select - HTML/CSS - Programmation

Marsh Posté le 15-01-2008 à 15:38:37    

Bonjour,
 
Je suis en train de développer un intranet et au niveau de ma gestion des droits j'ai un petit problème.
J'affiche la liste de tous mes membres avec à côté de leur pseudo un select avec la liste des droits  
(leur droit est selectionné par défaut).
Ce que je voudrais faire c'est lorsque l'on sélectionne un droit dans mon select, que la requête s'envoi  
directement à la base de données au lieu de passer par un bouton submit.
Je pense que cela requiert du javascript avec un onclick et de récupérer la valeur du select mais je suis un peu  
novice dans ce domaine.
 
Merci pour votre aide.

Reply

Marsh Posté le 15-01-2008 à 15:38:37   

Reply

Marsh Posté le 15-01-2008 à 16:05:21    

Utiliser l'événement onchange sur ton select pour déclencher le submit() de ton formulaire. concrètement ça donne ça :

Code :
  1. <form action= [...] id="pouet" >
  2. <select name= [...] onchange="document.getElementById('pouet').submit()">
  3. [...]
  4. </select>
  5. </form>

Message cité 1 fois
Message édité par dwogsi le 15-01-2008 à 16:05:30

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 15-01-2008 à 16:15:15    

merci, ca à l'air de fonctionner, mais comment récupérer la valeur du select et de tester si la variable du submit existe ?

 
Code :
  1. if(isset($_POST['???']))
  2. {
  3. ....
  4. }


Message édité par Metabolicman le 15-01-2008 à 16:41:23
Reply

Marsh Posté le 15-01-2008 à 19:26:44    

ba $_POST['name_du_select'] !
Je vais quand même pas t'apprendre les bases du html/php ....?


Message édité par dwogsi le 15-01-2008 à 19:26:55

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 16-01-2008 à 09:34:19    

oui mais lorsque je fais  
 

Code :
  1. if(isset($_POST['droit']))
  2. {
  3. //affichage de la valeur du select
  4. echo $_POST['droit']."<br>";
  5. //affichage du champ caché comprenant l'id de chaque utilisateur
  6. echo $_POST['id_joueur']."<br>";
  7. }


 
J'ai toujours la même valeur et le même id pour n'importe quelle personne et n'importe quelle valeur du select (sélection du dernier affichage)
 
extrait de code:

Code :
  1. <?php
  2. ...
  3. function aff_droit($type)
  4. {
  5. ...
  6. <input type='hidden' name='id_joueur' value='".$val['id_joueur']."'>
  7. <select name='droit' onchange=\"document.getElementById('mod_droit').submit()\">
  8. <option>JOUEUR</option>
  9. <option>STAFF</option>
  10. <option>ADMIN</option>
  11. </select>
  12. ...
  13. }
  14. ...
  15. ?>
  16. <form method="POST" id="mod_droit">
  17. ...
  18. <?php aff_droit("joueur" ); ?>
  19. ...
  20. </form>

Message cité 1 fois
Message édité par Metabolicman le 16-01-2008 à 09:56:19
Reply

Marsh Posté le 16-01-2008 à 14:44:19    

dwogsi a écrit :

Utiliser l'événement onchange sur ton select pour déclencher le submit() de ton formulaire. concrètement ça donne ça :

Code :
  1. <form action= [...] id="pouet" >
  2. <select name= [...] onchange="document.getElementById('pouet').submit()">
  3. [...]
  4. </select>
  5. </form>



 
Ou mieux :

Code :
  1. <form action= [...]>
  2. <select name= [...] onchange="this.form.submit()">
  3. [...]
  4. </select>
  5. </form>


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 16-01-2008 à 14:47:41    

Metabolicman a écrit :

oui mais lorsque je fais  
 

Code :
  1. if(isset($_POST['droit']))
  2. {
  3. //affichage de la valeur du select
  4. echo $_POST['droit']."<br>";
  5. //affichage du champ caché comprenant l'id de chaque utilisateur
  6. echo $_POST['id_joueur']."<br>";
  7. }


 
J'ai toujours la même valeur et le même id pour n'importe quelle personne et n'importe quelle valeur du select (sélection du dernier affichage)
 
extrait de code:

Code :
  1. <?php
  2. ...
  3. function aff_droit($type)
  4. {
  5. ...
  6. <input type='hidden' name='id_joueur' value='".$val['id_joueur']."'>
  7. <select name='droit' onchange=\"document.getElementById('mod_droit').submit()\">
  8. <option>JOUEUR</option>
  9. <option>STAFF</option>
  10. <option>ADMIN</option>
  11. </select>
  12. ...
  13. }
  14. ...
  15. ?>
  16. <form method="POST" id="mod_droit">
  17. ...
  18. <?php aff_droit("joueur" ); ?>
  19. ...
  20. </form>



Et l'action du <form> ?
 
Sinon essaye de mettre toujours les mêmes quotes dans les attributs html (" ), ça fait plus propre...


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed