Ne pas réagir si on sélectionne le 1er élément d'un formulaire

Résolu
Tipado Messages postés 8 Date d'inscription samedi 2 décembre 2006 Statut Membre Dernière intervention 21 mai 2008 - 19 mai 2008 à 17:19
Tipado Messages postés 8 Date d'inscription samedi 2 décembre 2006 Statut Membre Dernière intervention 21 mai 2008 - 21 mai 2008 à 17:43
Bonjour


J'ai une page internet avec 3 formulaires de type SELECT (liste deroulante)


Ces 3 formulaire se remplicent automatiquement grace a des requetes SQL en PHP.


Avant mes codes PHP qui remplissent automatiquement mes formulaires, j'ai fais un
<OPTION VALUE="">Choisir une option 

afin que mes formulaires commance par "rien"


Je voudrai que mes formulaires ne réagisent pas si on sélectionne le 1er élément.


Voici exemple d'un formulaire avec son scripte que j'ai fai (Ne marche pas ):




<form NAME="TEST" action = "Treatmentform91a.php" method="post" onChange="Lien()">
Site:  <SELECT name="site">


<OPTION VALUE="">Choisir une option


<?php


// mon code php qui rempli automatiquement mon formulaire, grace a une requetes SQL en PHP
?> 


</SELECT>


</form>





Mon scripte et :


<SCRIPT>
function Lien() {
 i = document.TEST.site.selectedIndex;
 if (i == 0) return;
}
</SCRIPT>


PS: DSL pour mon Orthographe

10 réponses

Tipado Messages postés 8 Date d'inscription samedi 2 décembre 2006 Statut Membre Dernière intervention 21 mai 2008
21 mai 2008 à 17:43
Sa y est PB resolut.

Code:
---------------------------------

<html>
<head>
<script type="text/javascript">
function Lien(form) {
 i = form.site.selectedIndex;
 if (i == 0) return;
 form.submit();
}
</script>
</head>



<form NAME="Choix" action = "Treatmentform91a.php" method="post">
Site:  <SELECT name="site" onChange= "Lien(this.form)">
.<option value="">Choisir une option</option>
  <option value="Lien #1">Choix #1</option>
  <option value="Lien #2">Choix #2</option> 

  </select>
</form>

</html>

--------------------------------
merci á toi PetoleTeam
pour tes aides.
3
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
19 mai 2008 à 18:12
Bonjour,
il te faut mettre le onchange sur le SELECT et non sur la FORM
<SELECT name="site"
onChange="Lien()">
;O)
0
Tipado Messages postés 8 Date d'inscription samedi 2 décembre 2006 Statut Membre Dernière intervention 21 mai 2008
19 mai 2008 à 19:11
ok , je teste ça demain matin, car j'ai laissé mon code au taff.
Je vous tiens au courant
0
Tipado Messages postés 8 Date d'inscription samedi 2 décembre 2006 Statut Membre Dernière intervention 21 mai 2008
20 mai 2008 à 08:36
Non ca ne marche pas =((
0

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

Posez votre question
Tipado Messages postés 8 Date d'inscription samedi 2 décembre 2006 Statut Membre Dernière intervention 21 mai 2008
20 mai 2008 à 08:49
j'ai tester d'une autre facon, mais ca marche pas aussi.

Code:


<form  action = "Treatmentform91a.php" method="post" >
Site:  <SELECT name="site" onChange='TEST(this.form)' >

<OPTION VALUE="">Choisir une option

<?php

// mon code php qui rempli automatiquement mon formulaire, grace a une requetes SQL en PHP
?> 

</SELECT>

</form>



Mon scripte et :

<SCRIPT>
function TEST(form) {
i = form.site.selectedIndex;
if (i == 0) {
  return;
}
   }
</SCRIPT>


C'est pourtant pas compliqué, pourquoi ca marche pas ??
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
20 mai 2008 à 12:13
Bonjour,
<table bgcolor= "#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, C'est pourtant pas compliqué, pourquoi ca
marche pas ??</td>
</td></tr></tbody></table>Ca
c'est bien vrai...
Un morceau de code qui marche...
<html>
<head>

<script type="text/javascript">
//------------------
function Lien( obj_){

 i = obj_.selectedIndex;
 if( i > 0)
   alert('On fait QUOI
?\navec ' +obj_.options[i].value);
 else
   alert('Rien à faire..');

}
</script>
</head>

<form>
Site:

<select name="site" onchange="Lien( this);">
  <option
value="">Choisir une option</option>
  <option value="Lien
#1">Choix #1</option>
  <option value="Lien #2">Choix
#2</option>
</select>
</form>


</html>
;O)
0
Tipado Messages postés 8 Date d'inscription samedi 2 décembre 2006 Statut Membre Dernière intervention 21 mai 2008
20 mai 2008 à 13:49
J'ai de plus en plus de mal avec le Javascrip.

je vais te donner tout mon code soucrce:
 Je voudrais que le 1er élément (<OPTION VALUE= "">Choisir une option</option>)  d'un formulaire  ne pas réagi si on clique dessu, mais que les autres reagissent (ceux issu de la base de donner) 

PS: A ce stade tout marche ,sof les 1er  élément  des formulaires sont sélectionnable.
Je voudrais aussi des onchange au lieu des boutons si possible .

Merci beaucoup pour ton aide.

____________________________________________________________

[sources]
head>
<title>Form</title>
</head>


 



<form action = "Treatmentform91a.php" method="post">
<LI> Site:   <SELECT name ="site"> </LI>


<OPTION VALUE= "">Choisir une option</option>


<?php
//  connection DB


$base = mysql_connect ('***', '***', '***')
or die("Unable to connect to server $server");


mysql_select_db ('***', $base)
or die("Unable to connect to DB $base");




$sql = "SELECT DISTINCT site FROM SITES;" ;


//We run the motion (mysql_query), and it imposes an error message if the request does not go well (or die)
      $req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
  
  
   // It will scan all tuples one by one
while ($data = mysql_fetch_array($req)) {


   // on affiche les résultats
      echo '<OPTION VALUE="'.$data['site'].'">'.$data['site'].'</option>
';

mysql_free_result ($req); 
mysql_close (); 





?>


</SELECT>


</form>



 




  
  
<form action = "Treatmentform91b.php" method="post">
<LI> manufactures:   <SELECT NAME ="fab"></LI>


<OPTION VALUE= "">Choisir une option</option>


<?php
//  connection DB


$base = mysql_connect ('***', '***', '***')
or die("Unable to connect to server $server");


mysql_select_db ('***', $base)
or die("Unable to connect to DB $base");




$sql = "SELECT DISTINCT fabbricati FROM FABBRICATI;" ;


//We run the motion (mysql_query), and it imposes an error message if the request does not go well (or die)
      $req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
  
  
   // It will scan all tuples one by one
while ($data = mysql_fetch_array($req)) {


   // on affiche les résultats
      echo '<OPTION VALUE="'.$data['fabbricati'].'">'.$data['fabbricati'].'</option>
';

mysql_free_result ($req); 
mysql_close (); 





?>


</SELECT>
 </form>

 
 
 
 
 
 <form action = "Treatmentform91c.php" method="post">
<LI> local technical:   <SELECT NAME ="LT"></LI>


<OPTION VALUE="">Choisir une option</option>


<?php
//  connection DB


$base = mysql_connect ('***', '***', '****')
or die("Unable to connect to server $server");


mysql_select_db ('***', $base)
or die("Unable to connect to DB $base");




$sql = "SELECT DISTINCT localitecnici FROM LOCALITECNICI;" ;


//We run the motion (mysql_query), and it imposes an error message if the request does not go well (or die)
      $req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
  
  
   // It will scan all tuples one by one
while ($data = mysql_fetch_array($req)) {


   // on affiche les résultats
      echo '<OPTION VALUE="'.$data['localitecnici'].'">'.$data['localitecnici'].'</option>
';

mysql_free_result ($req); 
mysql_close (); 





?>


</SELECT>


 </form>



 


 





 


</form>

</html>

/sources________________________________________________________
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
20 mai 2008 à 18:06
Bonjour,
Je viens de comprendre ton soucis, bien
que le code généré eut été préférable au PHP.
Si tu appui sur le bouton send
il te faut tester le selectedIndex du SELECT
et retourner false si il est à zéro.
Pour
ce faire utilises l'événelent onsubmit sur la
FORM
exemple :
<script
type= "text/javascript">
//------------------------

function Test_Index( obj_){
  return( obj_.selectedIndex <
1 ? false : true);
}
</script>
avec dans la balise FORM
de Site <form action "Treatmentform91a.php" method "post" onsubmit = "return( Test_Index(
this.site))">
Il te reste à faire de même pour les autres...

;O)
0
Tipado Messages postés 8 Date d'inscription samedi 2 décembre 2006 Statut Membre Dernière intervention 21 mai 2008
21 mai 2008 à 08:40
La , je suis bord de la crise de nerfs ^^.
Ca ne marche toujours pas  ;( .
0
Tipado Messages postés 8 Date d'inscription samedi 2 décembre 2006 Statut Membre Dernière intervention 21 mai 2008
21 mai 2008 à 09:25
Il y a du nouveau .Mon problème et résolu .
Mais maintenant, j'en ai un nouveau aue je n'avais pas

Je resume la situation, mon 1er élément du formulaire ne reagi plus (c'est ce que je voulais).
Lorsque que je clique sur un élément de mon formulair, sa me renvoi á ma page de traitement PHP, jusqu'ici tout vqs bien.

Mais voilail y a un bintz, l'élément de mon formulaire que j'ai choisi, n'ai pas envoyer.
Je croi savoir, d'oú vien ce pb, il ný a pas de submit dans non formulair, mais j'arive pas á l'integré

Mon Code:
-------------------------------------------------------------

<script type="text/javascript">



function Lien() {
 i = document.Choix.site.selectedIndex;
 if (i == 0) return;
 lien = document.Choix.site.options[i].value;
 parent.location.href = lien;
}
</script>


Mon formulairqui se remplit automatiquement grace a une requete SQL en PHP.


<form NAME="Choix" action = "Treatmentform91a.php" method="post">
Site:<SELECT name="site" onChange="Lien()">



<OPTION VALUE="">Choose an option</option>

<?php

//  connection DB



$base = mysql_connect ('***', ***, ***)
or die("Unable to connect to server $server");



mysql_select_db (***, $base)
or die("Unable to connect to DB $base");




 





 //Requet SQL

$sql = "SELECT DISTINCT site FROM SITES;" ;




//We run the motion (mysql_query), and it imposes an error message if the request does not go well (or die)
      $req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
  
  
   // It will scan all tuples one by one
while ($data = mysql_fetch_array($req)) {



   // on affiche les résultats
      echo '<OPTION VALUE="Treatmentform91a.php">'.$data['site'].'</option>
';

mysql_free_result ($req); 
mysql_close (); 



 



?>



</SELECT>

</form>
0
Rejoignez-nous