probleme recuperation valeur suite a changement dans liste deroulante

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme recuperation valeur suite a changement dans liste deroulante

par h0_noMan » 23 oct. 2007, 05:32

Tu met les 2 valeurs dans le VALUE (en les separant par : par exemple) et une fonction JS se charge de les separer et les afficher.
<select name="mat"  style="width:600px;"  onchange="changer(this);" >
         
          <?php 
    while($ligne = mysql_fetch_assoc($resultat)) 
    { 
?> 
          <option value="<?php echo($ligne['matricule'].':'.$ligne['charg']); ?>"><?php echo($ligne['nom'].$ligne['gc'].' '.$ligne['ville'].' '.$ligne['ad_rue_lieux'].' '.$ligne['cp_ville']); ?></option> 
          <?php 
    } 
?> 
        </select>
Et le script :
function changer(obj)
{
var text = obj.options[obj.selectedIndex].value ;
var tableau = text.split(':');
document.getelementbyid("charg").value = tableau[0];
document.getelementbyid("charg2").value = tableau[1];
}

par tibo » 16 oct. 2007, 16:05

toujours aucune idée ?

par tibo » 27 sept. 2007, 15:39

aie ça marche pas avec firefox

vous avez une idée pour que ça marche sur les 2


merci

par tibo » 25 sept. 2007, 09:18

non ça y es j'ai trouvé
<select name="mat"  style="width:600px;"  onchange="charg.value=this.options[this.selectedIndex].test" >
		 
          <?php 
    while($ligne = mysql_fetch_assoc($resultat)) 
    { 
?> 
          <option test="<?php echo($ligne['charg']); ?>" value="<?php echo($ligne['matricule']); ?>"><?php echo($ligne['nom'].$ligne['gc'].' '.$ligne['ville'].' '.$ligne['ad_rue_lieux'].' '.$ligne['cp_ville']); ?></option> 
          <?php 
    } 
?> 
        </select> 
je savai pas que je pouvais rajouter dans le option une variable.

Merci pour votra aide

par tibo » 25 sept. 2007, 08:49

ma liste deroulante :
   <select name="mat"  style="width:600px;"  onchange="charg.value=this.options[this.selectedIndex].value" >
		 
          <?php 
    while($ligne = mysql_fetch_assoc($resultat)) 
    { 
?> 
          <option value="<?php echo($ligne['matricule']); ?>"><?php echo($ligne['nom'].$ligne['gc'].' '.$ligne['ville'].' '.$ligne['ad_rue_lieux'].' '.$ligne['cp_ville']); ?></option> 
          <?php 
    } 
?> 
        </select> 
        <?php 
} 
?>

et mon champs de texte :
   <input name="charg" type="text" id="charg" readonly>


Donc a chaque fois que je choisi un enregistrement dans ma liste cela maffiche dans ma zone de texte le matricule de mon champs, normale vu que c'est lieu qui est dans value. Le probleme c'est que je veux faire afficher un autre champs de mon enregistrement qui ne s'affiche pas dans la liste deroulante, celui ci est $ligne['charg'].

Je ne peux pas mettre cette valeur dans value, vue que cette liste deroulante est dans un formulaire et que le matricule est ensuite necessaire.

Voila

Je pense que ça ira mieux la.

merci

par AB » 24 sept. 2007, 19:54


voila je sais pas si j'ai été clair

merci
non pas vraiment ce serait mieux de donner un exemple.

par tibo » 24 sept. 2007, 19:04

ok j'ai corriger tout mon truc le quand je choisi dans ma liste deroulant cela m'affiche mon num correspondant a l'enregistrement, mais le souci c'est que je veux afficher selon un autre champ = charg. Mais je ne pe pas pour autant changer le value etant donnée que j'en ai besoin ensuite pour enregistrer mon formulaire.

voila je sais pas si j'ai été clair

merci

par Gaap » 24 sept. 2007, 16:23

dans ta function tu donnes la valeur de ta liste déroulante a un objet qui a pour id="charg" je ne vois pas le soucis ? si ton "charg" est une zone de saisie elle affichera cette valeur ( sort sa règle en fer pour taper sur les doigts )

:D :wink:

par tibo » 24 sept. 2007, 15:23

merci, j'ai appliquer la premiere solution, mais je voudrai afficher dans la zone de texte la valeur echo ($ligne['charg']); mais je ne voi pas de quel manière faire ensuite

merci

par AB » 24 sept. 2007, 14:30

@gaap

A première vue j'opterais plutôt pour ta première proposition

par Gaap » 24 sept. 2007, 14:20

en fait ici tu as le choix entre deux méthodes soit tu fais un

Code : Tout sélectionner

<SELECT onchange="resultat(this.options[this.selectedIndex].value)">
et ton javascript

Code : Tout sélectionner

function resultat(cc) { document.getElementById("charg").value = cc; }
---------------------------------------------------------------------------------------------------
soit tu fais un

Code : Tout sélectionner

<SELECT onchange="resultat()">
et tu mets dans ton javascript

Code : Tout sélectionner

function resultat() { document.getElementById("charg").options[document.getElementById("charg").selectedIndex].value }
-----------------------------------------------------------------------------------------------------

Mais on ne fait pas les deux :wink:


de plus que veux tu faire après parce que pour le moment cela ne fait rien

par tibo » 24 sept. 2007, 14:06

merci pour votre rapidité.
Alors j'ai changer mon code cela donne :
   <select name="mat" id="mat" style="width:600px;"  onchange="resultat('<?php echo ($ligne['charg']); ?>')" > 
          <?php 
    while($ligne = mysql_fetch_assoc($resultat)) 
    { 
?> 
          <option value="<?php echo($ligne['matricule']); ?>"><?php echo($ligne['nom'].$ligne['gc'].' '.$ligne['ville'].' '.$ligne['ad_rue_lieux'].' '.$ligne['cp_ville']); ?></option> 
          <?php 
    } 
?> 
        </select> 
mon code javascript :
function resultat(charg)
{
document.getElementById("charg").options[document.getElementById("charg").selectedIndex].value
}
mais par contre j'ai rien changer pour la zone de texte, c'est a partir du code javascript que l'on envoi la valeur dans la zone ?

merci

par Ryle » 24 sept. 2007, 11:18

L'élément option ne supporte pas l'attribut onChange. Celui-ci doit être placé dans la balise <select> et peut accéder à la valeur de l'option sélectionnée avec "this" :

Code : Tout sélectionner

this.options[this.selectedIndex].value

par Gaap » 24 sept. 2007, 11:16

pour ma part, je mettrais d'abord ton onchange() sur le <SELECT> (celui ci doit avoir un ID) et la ligne pour récupérer la valeur de ta sélection dans ton javascript serait plus

Code : Tout sélectionner

document.getElementById("id de mon select").options[document.getElementById("id de mon select").selectedIndex].value

probleme recuperation valeur suite a changement dans liste d

par tibo » 24 sept. 2007, 11:11

Bonjour,

Voila j'ai un souci je voudrai que lorsque je choisi dans une liste deroulante un des enregistrements, cela m'affiche dans un champs une des propriété qui est dans la base correspondant a cette enregistrement.

dans ma liste deroulante j'ai :
<option  onchange="resultat('<?php echo ($ligne['charg']); ?>')" value="<?php echo($ligne['matricule']); ?>"><?php echo($ligne['nom'].$ligne['gc'].' '.$ligne['ville'].' '.$ligne['ad_rue_lieux'].' '.$ligne['cp_ville']); ?></option> 


mon javascript :
function resultat(cc)
{
document.getElementById("charg").value = cc;
}

ma zone de texte ou je voudrai que cela s'affiche :
 <input name="charg" type="text" id="charg" readonly>
j'ai essayé de chercher sur le forum ou sur internet mais impossible de trouver comment faire ou alors cela ne marchais pas.

es-ce que vous pourriez m'aider

merci d'avance