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

Signaler
Messages postés
8
Date d'inscription
samedi 2 décembre 2006
Statut
Membre
Dernière intervention
21 mai 2008
-
Messages postés
8
Date d'inscription
samedi 2 décembre 2006
Statut
Membre
Dernière intervention
21 mai 2008
-
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

Messages postés
8
Date d'inscription
samedi 2 décembre 2006
Statut
Membre
Dernière intervention
21 mai 2008

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.
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour,
il te faut mettre le onchange sur le SELECT et non sur la FORM
<SELECT name="site"
onChange="Lien()">
;O)
Messages postés
8
Date d'inscription
samedi 2 décembre 2006
Statut
Membre
Dernière intervention
21 mai 2008

ok , je teste ça demain matin, car j'ai laissé mon code au taff.
Je vous tiens au courant
Messages postés
8
Date d'inscription
samedi 2 décembre 2006
Statut
Membre
Dernière intervention
21 mai 2008

Non ca ne marche pas =((
Messages postés
8
Date d'inscription
samedi 2 décembre 2006
Statut
Membre
Dernière intervention
21 mai 2008

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 ??
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
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)
Messages postés
8
Date d'inscription
samedi 2 décembre 2006
Statut
Membre
Dernière intervention
21 mai 2008

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________________________________________________________
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
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)
Messages postés
8
Date d'inscription
samedi 2 décembre 2006
Statut
Membre
Dernière intervention
21 mai 2008

La , je suis bord de la crise de nerfs ^^.
Ca ne marche toujours pas  ;( .
Messages postés
8
Date d'inscription
samedi 2 décembre 2006
Statut
Membre
Dernière intervention
21 mai 2008

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>