[RESOLU] onChange rajouter la valeur modifier du select dans ma base

plop
Invité n'ayant pas de compte PHPfrance

16 mars 2006, 16:19

Bonjour,

se serai pour savoir plusieurs chose :

est il possible de passe un argument style $id via le onchange?

si oui comment recupere t on cette valeur?

Car je fais un onChange sur un select, je recharge ma page si on modifie le choix du select, probleme, il me rechrge bien la page, mais reaffiche la valeur que j'ai en base de donne, donc celle afficher avant modification.

exemple : trois choix dans mon select : le choix stocke en base de donnée en premier les 2 autres ensuit ==>
bois
satin
verre

mnt je change ma valeur choisi et au lieu de bois que j'avais choisi avant, je prend satin, je veux que une fois la page recharger, il m'affiche satin, et qu'il me le stocke en base de donnee.

Quelqu'un pourrait m'aider?

Merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 mars 2006, 17:25

Bonjour,

tout dépend de ce que fais ton onChange, mais tu peux en javascript récupérer la valeur sélectionnée dans ton formulaire et la passer à une fonction ou dans une url ou autre... :

Code : Tout sélectionner

<select name="liste" onChange="alert(this.options[this.selectedIndex].value)"> <option value="1">bois</option> <option value="2">satin</option> <option value="3">verre</option> </select>
A toi d'adapter le alert() selon la façon dont tu veux l'utiliser. Et une fois la variable transmise, il te suffit de tester si elle est définie pour savoir que tu dois l'utiliser pour sélectionner le bon élément, sinon tu utilises celle de ta base :)

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

16 mars 2006, 17:28

Modération :
Cette question est du Javascript, merci de poster dans le bon forum.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Invité
Invité n'ayant pas de compte PHPfrance

16 mars 2006, 18:30

<select name="statut" id="select" onChange="ok.submit()"> <? echo " <option>$statut</option>"; ?>
<option value='In' >In</option><option value='En cours' >En cours</option><option value='Out' >Out</option><option value='En attente' >En attente</option><option value='Appel OK' >Appel OK</option><option value='Email envoye' >Email envoye</option> </select>

voici ce que je fais, et je voudrai que le statut chosi, change quand je le change, pour le moment imaginons dans ma base il est a In, et je le passe a Out, y me reload ma page, mais me remet mon statut a In.

comment faire pour qu'il mette Out??? faudrai mettre Out dans ma base ...

j'ai un bouton apres, si je fais pas de onChange,(je le supprime) et que je fais avec mon bouton ca marche voici le code :

if(isset($_POST['submit'])=='OK') 
{ 
	echo"proute";
	$ttest=$ttest+1;
        $reeeq="INSERT INTO session (test) VALUES ('$ttest')";
    	$resultttt = @mysql_query($reeeq);
   $statut  = $_POST["statut"]; 
 
   $req="UPDATE machine SET  statut='$statut' WHERE idmachine='".$_GET['variable']."'";
   $rep = mysql_query($req) or die('Erreur SQL');
   $requette="UPDATE intervention SET  statut='$statut' WHERE machineid='".$_GET['variable']."'";
	$repon = mysql_query($requette) or die('Erreur SQL');
} 

voici mon form :

<form id="ok" action="statutexemple1.php?variable=<?echo $idmachine ?>&var=<?echo $i?>" method="post">



je veux faire ca met avec le onchange, pour pas devoir chaque fois clique sur le boutton ...

ca fais plusieurs jours que j'essaye en vain ...

Merci d'avance

comment faire pour que le onChange rentre dans cette boucle la???

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 mars 2006, 22:54

en clair tu veux valider le formulaire sur changement de séléction dans la liste déroulante,essaie avec:
onchange="document.nom_formulaire.submit();"

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

17 mars 2006, 12:39

ca change rien, si je modifie mon select, il ne fais rien du tout comme si je fesait pas de onchange ...


voici le code pour ca :


c'est un des case, il en a 5-6, * 3

voila pourquoi j'en met qu'un sinon ca va faire long ;)

 case 'En attente' :
      echo "<tr bgcolor=\"#8888FF\">  "; ?>
       <form id="ok" action="statutexemple1.php?variable=<?echo $idmachine ?>&var=<?echo $i?>" method="post">
      <?php echo "<td>$idinter</td><td>$nom ==> $nommachine</td>";
   //"<td><a href=\"ajoutclient.php?var=$idmachine\">$nom ==> $nommachine</a></td>";
 if (($telephone!="") and ($gsm!=""))
   {
   echo "<td>$telephone   /   $gsm</td>";
   }
   elseif( ($telephone=="") and ($gsm!=""))
   {
    echo "<td> $gsm</td>";
   }
    elseif ( ($telephone!="") and ($gsm==""))
   {
   echo "<td> $telephone</td>";
   }
   elseif( ($telephone=="") and ($gsm==""))
   {
   	echo"<td></td>";
   }
  //"<td><textarea disabled=\"disabled\" size=\"45\">$resolution</textarea></td>".
 
?>  <td><center><font color="red"><b><? if($assemblage==1) echo "A"; ?> </font></center></td></b>
 <td><?= $vill?> </td>
<td><a href="tech1.php?var=<?php echo $idinter?>&vari=<?echo $i?>">Tech</a></td> 
             <td><a href="sales.php?var=<?php echo $idinter;?>&vari=<?echo $i?>">Sales</a></td>
              <?="<td>$dateheure  </td>";?>
          <td><select name="statut" id="select" onChange="document.ok.submit()">   <? echo  " <option>$statut</option>"; ?>
<option value='In' >In</option><option value='En cours' >En cours</option><option value='Out' >Out</option><option value='En attente' >En attente</option><option value='Appel OK' >Appel OK</option><option value='Email envoye' >Email envoye</option>                     </select>
        </td>
     
           <td> 
      <center> <input name="submit" type="submit" class="champ" value="OK">   </center>   
         </form> </div></td>
     
    </tr>
        
        
        <? echo "<tr><td></td></tr><tr><td></td></tr>"; 
"</tr>";
      break;

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

17 mars 2006, 18:56

tu utilise un attribut "id", essaie avec :
document.forms['ok'].submit();  

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute