Bonjour j'ai un gros probleme avec un select, et onchange

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 : Bonjour j'ai un gros probleme avec un select, et onchange

par Invité » 28 mars 2006, 10:51

ok merci mille fois j'y suis arriver, mon select ne convenait pas ou mon bouton fesait tout foire, met en changeant mon select et en virant mon bouton tout m'arche comme il faut :D

RESOLU

par Invité » 28 mars 2006, 09:30

oui, et comment faire pour recuperer ces ligne alors?

je suppose que pour mon form et select je fais comme dit plutot ceci :

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

<select name="statut" id="select" onChange="formulair<?echo $idmachine?>.submit();">

et pour recuperer je fais comment?

par Hermès » 27 mars 2006, 17:36

Si tu as 20 select dans ton formulaire, il faut qu'ils aient tous un attribut "name" différent.

S'ils ont tous le même attribut "name", comme c'est le cas actuellement, quand tu changes l'options sélectionné pour l'un de ces select l'application ne fait aucune différence avec les autres select.

La solution est donc de générer l'attribut "name" de chaque select.
Si chaque ligne est générée à partir d'une requête SQL, alors c'est facile, il suffit que l'attribut "name" du select soit une concatenation de ce que tu veux ("statut" par exemple) et de l'identifiant unique de ton entrée dans la table SQL.

par Truc » 27 mars 2006, 16:06

dans le cas présent le code est en dur lorsque tu génères une page il y a des boucles il y aura donc moins de lignes.

Mais en gros oui pour chaque liste il faut bien tester la valeur pour pré-séléctionner le cas échéant sion le choix ne reste pas :wink:

par Invité » 27 mars 2006, 16:04

et le probleme, c'est que si j'ai 20 select, je dois faire ca 20 fois alors????

par Truc » 27 mars 2006, 16:02

je veux que tu comprennes le fonctionnement des listes pré-séléctionnées et validation du formulaire sur changement dans une liste.

Le code donné ne te sert pas directement dans ton cas, il ne sert que pour la compréhension.

par Invité » 27 mars 2006, 15:59

je comprend pas exactement ce que tu veux faire,

faire un script similaire sur une autre page et dont je fais appel a chaque slect? c'est ca?

par Truc » 27 mars 2006, 15:53

Changeons de manière... qu'un seul formulaire pour toutes les listes.

Regarde ce code et essaie d'adapter:
<html>
<head>
<title></title>
</head>
<body>

<?
 //récupération des valeurs des listes
$liste1 = isset($_POST['statut1']) ? $_POST['statut1'] : "";
$liste2 = isset($_POST['statut2']) ? $_POST['statut2'] : "";
?>
Element séléctionnés...<br />
Liste 1 : <? echo $liste1; ?><br />
Liste 2 : <? echo $liste2; ?><br /><br />

Form:
<form id="form" method="post" action="#">
	SELECT 1:
	<select name="statut1" id="select1" onChange="form.submit();" />
		<? 
			$selected = ($liste1 == "1") ? " selected=\"selected\"" : null;
		?>
		<option value="1" <? echo $selected; ?>>1</option>
		<? 
			$selected = ($liste1 == "2") ? " selected=\"selected\"" : null;
		?>
		<option value="2" <? echo $selected; ?>>2</option>
		<? 
			$selected = ($liste1 == "3") ? " selected=\"selected\"" : null;
		?>
		<option value="3" <? echo $selected; ?>>3</option>
	</select>
	<br />
	SELECT 2:
	<select name="statut2" id="select2" onChange="form.submit();" />
		<? 
			$selected = ($liste2 == "1") ? " selected=\"selected\"" : null;
		?>
		<option value="1" <? echo $selected; ?>>1</option>
		<? 
			$selected = ($liste2 == "2") ? " selected=\"selected\"" : null;
		?>
		<option value="2" <? echo $selected; ?>>2</option>
		<? 
			$selected = ($liste2 == "3") ? " selected=\"selected\"" : null;
		?>
		<option value="3" <? echo $selected; ?>>3</option>
	</select>
</form>
</body>
</html>

par Invité » 27 mars 2006, 15:44

il le fais meme pas a chauqe premiere fois ... il le fait une fois tout les x temps ...

j'y comprend plus rien la ...

par Invité » 27 mars 2006, 15:27

oui il y a plusieurs select identique, un a chaque fin de ligne pour choisir le statut.

donc on a par exemple 10 ligne donc 10 slect, mais le select est le meme pour tous, c'est juste un choix de statut.

comme si on on avait :


jean veuf
thierry celibataire
Paul marie
Lucienne marie
leopoldine Celibataire


et que les dernier element donc veuf, celibataire marie, ... etait un slect, qu'on pouvais en modifier un, il recharge la page, et ainsi de suite ...

par Invité » 27 mars 2006, 15:24

... 

      switch ($statut)
{
    case 'In' :
      echo "<tr bgcolor=\"#ffffff\">"; 
 include "select.php";  
      break;
    case 'En cours':
      echo "<tr bgcolor=\"#ffffff\"> "; ?>
        <form id="formulair<?echo $idinter?>" action="statutexemple1.php?variable=<?echo $idmachine?>&var=<?echo $i?>" method="post">

<? echo " <td> <b>$idinter</b></td><td><b>$nom ==> $nommachine</b></td>";
 

...

        
          <td> <select name="statut" id="select" onChange="formulair<?echo $idinter?>.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>
</form> </td>
     
           <td> 
    <center> <input name="submit" type="submit" class="champ" value="OK">   </center>
         </form> </div></td>
      
    </tr>

   ...
     
        
   
      break;

      
      
       case 'Out' :
      echo "<tr bgcolor=\"#88FF88\">"; 
 include "select.php";
      break;
      
       case 'En attente' :
      echo "<tr bgcolor=\"#8888FF\">  ";  include "select.php";
      break;
      
       case 'Appel OK' :
      echo "<tr bgcolor=\"#88FF88\">  ";  include "select.php";
      break;
      
      
       case 'Email envoye' :
      echo "<tr bgcolor=\"#88FF88\">  "; include "select.php";
      break;

}}
 }

...


voici la page select.php :
<form id="formulair<?echo $idinter?>" action="statutexemple1.php?variable=<?echo $idmachine?>&var=<?echo $i?>" method="post">


  <?php echo "<td>$idinter</td><td>$nom ==> $nommachine</td>";
 
...

<select name="statut" id="select" onChange="formulair<?echo $idinter?>.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>
     
...    

par Truc » 27 mars 2006, 15:20

je crois qu'il faut clarifier les choses...

Est-ce qu'il y a plusieurs <select> sur la meme page ?

Montre nous le code source généré (coupe les parties inutiles si le code est trop long, mais pour que ça reste compréhensible).

par Invité » 27 mars 2006, 15:17

oui mais ici, j'ai 5 ligne avec mes donne et en fin de ligne le choix du statut .

je change en ligne 3 le statut. ca va aller correctement,

Mais apres aucune ligne n'ira plus.

sauf si je me reconnecte ...

par Truc » 27 mars 2006, 15:15

ca marche, maintenant je peux changer n'imoporte lequel au premier coup ca ira, mais si j'en change un, apres c'est fini!
ça vient certainement de l'événement qui est appelé lors d'un changement dans la liste. Si tu séléctionnes le même élément de la liste pas de validation du formulaire.

par Invité » 27 mars 2006, 15:09

non je n'ai rien en ligne :$

[/img]