PHP / JavaScript : submit annule le onChange(

Fermé
Mawimus - Modifié par Mawimus le 14/04/2011 à 17:30
 Mawimus - 14 avril 2011 à 17:41
Bonjour,


J'ai un problème avec mon script php / javascript.


Il s'agit d'un test pour pouvoir l'appliquer à grande échelle et dynamiquement, je cherche à établir une chaine de 'liste' la 2eme accessible uniquement si on a sélectionné un objet dans la 1ere liste, ainsi de suite...
Si on sélectionne a nouveau dans la 1ere liste, toutes les autres seront réinitialisés.


Dans mon code, le problème vient du fait que la fonction submit() dans mon script annule l'accessibilité de ma prochaine liste :


document.forms['mon_formulaire'].submit() ;



document.getElementById('ma_liste').disabled = false ;



Voici l'enssemble du code :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"   
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">   
     
<html xmlns="http://www.w3.org/1999/xhtml">   
    <head>   
        <title>An XHTML 1.0 Strict standard template</title>   
        <link rel="stylesheet" type="text/css" href="_css/style.css" />   
        <meta http-equiv="content-type"    
            content="text/html;charset=iso-8859-1" />   
    </head>   
    
       
 <script language="javascript">   
  function start_page()   
  {   
   for(i = 1 ; i <= 2 ; i++)   
   {   
    document.getElementById(i).disabled = true ;   
   }   
  }   
     
  function instance_next(name)   
  {     
     
   document.forms['changenum'].submit() ;   
      
   var intname = (parseInt(name) + 1) ;   
     
   for(i = intname ; i <= 2 ; i++)   
   {   
    document.getElementById(i).disabled = true ;   
   }   
      
   document.getElementById(intname).disabled = false ;   
  }   
    
 </script>   
    
    
    
    
    
    <body onLoad="start_page() ;">   

  <form method=POST action="#" name='changenum'>   
      
   num0   
      
   <select name="0" id="0" onChange="instance_next(this.name) ;">   
<?php if(!isset($_POST['0'])) echo "<option>--Choisissez--</option>" ;   ?>   
<option <?php if(isset($_POST['0']) && $_POST['0'] == 1) echo "selected" ; ?>>1</option>   
<option <?php if(isset($_POST['0']) && $_POST['0'] == 2) echo "selected" ; ?>>2</option>   
<option <?php if(isset($_POST['0']) && $_POST['0'] == 3) echo "selected" ; ?>>3</option>   
<option <?php if(isset($_POST['0']) && $_POST['0'] == 4) echo "selected" ; ?>>4</option>   
<option <?php if(isset($_POST['0']) && $_POST['0'] == 5) echo "selected" ; ?>>5</option>   
   </select>   
      

     
  <?php   

   ?>   
   num1   
      
   <select name="1" id="1" onChange="instance_next(this.name) ;">   
<?php if(!isset($_POST['1'])) echo "<option>--Choisissez--</option>" ;   ?>   
<option <?php if(isset($_POST['1']) && $_POST['1'] == 1) echo "selected" ; ?>>1</option>   
<option <?php if(isset($_POST['1']) && $_POST['1'] == 2) echo "selected" ; ?>>2</option>   
<option <?php if(isset($_POST['1']) && $_POST['1'] == 3) echo "selected" ; ?>>3</option>   
<option <?php if(isset($_POST['1']) && $_POST['1'] == 4) echo "selected" ; ?>>4</option>   
<option <?php if(isset($_POST['1']) && $_POST['1'] == 5) echo "selected" ; ?>>5</option>   
   </select>   
   <?php   

   ?>   
   num2   

   <select name="2" id="2" onChange="instance_next(this.name) ;">   
<?php if(!isset($_POST['2'])) echo "<option>--Choisissez--</option>" ;   ?>   
<option <?php if(isset($_POST['2']) && $_POST['2'] == 1) echo "selected" ; ?>>1</option>   
<option <?php if(isset($_POST['2']) && $_POST['2'] == 2) echo "selected" ; ?>>2</option>   
<option <?php if(isset($_POST['2']) && $_POST['2'] == 3) echo "selected" ; ?>>3</option>   
<option <?php if(isset($_POST['2']) && $_POST['2'] == 4) echo "selected" ; ?>>4</option>   
<option <?php if(isset($_POST['2']) && $_POST['2'] == 5) echo "selected" ; ?>>5</option>   
   </select>   
   <?php   
 
     
  echo "<br/><br/><br/>" ;   
     
  if(isset($_POST['2']))   
  {   
   echo $_POST['0'].$_POST['1'].$_POST['2'] ;   
      
      
   echo "<input type='submit' value='Valider' name='val'>" ;   
  }   
     
  ?>   
     
  </form>   
    
    </body>   
</html>   


Merci de votre attention.
A voir également:

1 réponse

Je précise que j'aurais besoin de la valeur de la liste n pour calculer la liste n + 1
0