[php / javascript]

[php / javascript] - Programmation

Marsh Posté le 20-07-2001 à 12:31:42    

Voici mon formulaire multi-select:
<?
   echo"<HTML>";
   echo"   <BODY>";
   echo"   <form name=\"f1\" action=\"essai2.php\">";
   echo"         <select size=7 name=liste multiple>";
   echo"         <option value=orcl>ORCL";
   echo"         <option value=oracle>ORACLE";
   echo"         <option value=ora>ORA";
   echo"         </select>";
   echo"         <input type=\"submit\" value=\"go\">";
   echo"   <form>";
   echo"   <BODY>";
   echo"<HTML>";
 
?>
 
Je sais pas comment récupérer les valeurs sélectionnés, $liste a pour valeur "ora" le dernier de la liste. J'ai essayer $liste, $liste[0],$liste[1]???

Reply

Marsh Posté le 20-07-2001 à 12:31:42   

Reply

Marsh Posté le 20-07-2001 à 12:40:18    

Soluce : name=liste[] ! ! !
 
Truc, quand j'arrive pas à voir ce qu'il y a dans mes variables, je met un phpinfo() dans le script qui reçois le formulaire.
C'est rapide et facile à écrire...
 
phpinfo() il dit que QueryString = liste=ora&liste=oracle
 
C'est sur, comme çà, on as liste=oracle et c'est tout !
 
 
en mettant liste[]: QueryString = liste[]=ora&liste[]=oracle
 
Et on donc liste[0]=ora et liste[1]=oracle !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 20-07-2001 à 14:04:40    

Merci!

Reply

Marsh Posté le 20-07-2001 à 15:02:11    

ça pose qd même problème car il aime pas "liste[]" dans ma fonction ajouterliste ci-dessous :(
 
<?
   echo"<HTML>";
   echo"   <BODY>";
   echo"   <script>";
   echo"      function ajouterliste(commune){";
   echo"               n=new Option(commune);";
  echo"               indexl=document.f1.liste[].options.length;";
   echo"               document.f1.liste[].options[indexl]=n;";
   echo"               document.f1.liste[].options[indexl].selected=true;";
   echo"               document.write(coucuo);";
   echo"      }";
   echo"   </script>";
   echo"   <form name=\"f2\">";
   echo"         <input type=reset value=\"ajouter\" onClick=\"ajouterliste('coucou');\">";
   echo"   </form>";
   echo"   <form name=\"f1\" action=\"essai2.php\">";
   echo"         <select size=7 name=\"liste[]\" multiple>";
   echo"         <option value=orcl>ORCL";
   echo"         <option value=oracle>ORACLE";
   echo"         <option value=ora>ORA";
   echo"         </select>";
   echo"         <input type=\"submit\" value=\"go\">";
   echo"   </form>";
   echo"   <BODY>";
   echo"<HTML>";
 
?>
 
Il me met une erreur sur le caractère ] à la ligne en gras.
C'est pas cool, y a-t-il une solution?

Reply

Marsh Posté le 20-07-2001 à 15:12:12    

Je l'ai finté pour cet exemple :
 
echo" indexl=document.f1[0].options.length;";

Reply

Marsh Posté le 20-07-2001 à 15:46:08    

J'arrive pas à adapter ma solution à ce script:
 
<?
   echo"<HTML>";
   echo"   <HEAD>";
   echo"   <script>";
   echo"      function ajouterliste(commune){";
   echo"               n=new Option(commune);";
   echo"               indexl=document.?liste?.options.length;";
   echo"               document.?liste?.options[indexl]=n;";
   echo"               document.?liste?.options[indexl].selected=true;";
   echo"               return false;";
   echo"      }";
   echo"      function afficher(commune){";
   echo"               document.f1.nom.value=commune;";
   echo"               return false;";
   echo"      }";
   echo"   </script>";
   echo"   </HEAD>";
   echo"   <BODY>";
   echo"   <form name=\"f1\" action=\"http://126.234.1.4/carte/carteliste/cartefinale.php\">";
   echo"     <TABLE border=\"0\">";
   echo"     <TR>";
   echo"       <TD>";
   echo"         <IMG src=\"http://126.234.1.4/carte/carteliste/carteselection.php?choixdept=".$choixdept."&x=".$x."&y=".$y."&rayon=".$rayon."\" usemap=\"#map1\" name=\"carte\">";
   echo"         <MAP name=\"map1\">";
 
   $taillecartereelx=2753.54;
   $taillecartereely=2726.1;
   $taillecartex=515;
   $taillecartey=554;
   $transpox=28.84;
   $transpoy=61.6;
   $MinX=round(($x*$taillecartereelx)/$taillecartex)+$transpox-$rayon/2*3;
   if($MinX<0){$MinX=0;}
   $MaxX=round(($x*$taillecartereelx)/$taillecartex)+$transpox+$rayon/2*3;
   if($MaxX>$taillecartereelx){$MaxX=$taillecartereelx;}
   $MinY=round(($y*$taillecartereely)/$taillecartey)+$transpoy-$rayon/2*3;
   if($MinY<0){$MinY=0;}
   $MaxY=round(($y*$taillecartereely)/$taillecartey)+$transpoy+$rayon/2*3;
   if($MaxY>$taillecartereely){$MaxY=$taillecartereely;}
   $TailleX=$MaxX-$MinX;
   $TailleY=$MaxY-$MinY;
 
   $conn1 = Ora_Logon("scott","tiger" );
   $curs1 = ora_open($conn1);
   if(strcmp($choixdept,"region" )==0){
      $queryauto1="select * from BRETAGNE where MINX>".$MinX." AND MINY>".$MinY." AND MAXX<".$MaxX." AND MAXY<".$MaxY;
   }else{
      $queryauto1="select * from BRETAGNE";
   }
   ora_parse($curs1,$queryauto1);
   ora_exec($curs1);
   while(ora_fetch($curs1)){
               $chaine="<AREA ";
               $commune = ora_getcolumn($curs1,0);
               $nom= ora_getcolumn($curs1,1);
               $coord = ora_getcolumn($curs1,4);
               $ptsco=explode(",",$coord);
               $nb=count($ptsco)/2;
               $nomcommune = ora_getcolumn($curs1,1);
               $chaine=$chaine."href=\"#liste[]\"  shape=\"poly\" coords=\""."$coord"."\" onClick=\"return ajouterliste('".addslashes($nom)."');\" onMouseOver=\"afficher('".addslashes($nom)."');\">";
               //http://126.234.1.4/carte/area/Copie%20de%20area.php#etiquette
               echo $chaine;
         }
   ora_close($curs1);
   echo"         </MAP>";
   echo"       </TD>";
   echo"       <TD>";
   echo"        <TR>";
   echo"          <input type=\"text\" name=\"nom\">";
   echo"        </TR>";
   echo"<br><br>";
   echo"        <TR>";
   echo"          <A NAME=\"etiquette\"></A>";
   echo"                <select size=7 name=\"liste[]\">";
   echo"                </select>";
   echo"        </TR>";
   echo"        <TR>";
   echo"          <input type=\"submit\" value=\"Valider\">";
   echo"        </TR>";
   echo"       </TD>";
   echo"     </TR>";
   echo"     </TABLE>";
   echo"   </form>";
   echo"   </BODY>   ";
   echo"</HTML>";
?>
 
Je sais pas quoi mettre à la place de ?liste?

Reply

Marsh Posté le 20-07-2001 à 16:11:58    

Le problème, c'est donc le nom du champ 'liste[]' !
 
Idée, en javascript, tu peux faire référence au champs d'un formulaire de plusieurs manière:
Par son nom, mais manifestement, ici, çà marche pas, ou par son indice dans le tableau elements, comme pour le tableau forms.
 
Dans ton cas, liste[] est le 2éme élément de la form f1 (ou forms[0]), donc tu doit pouvoir y accéder par :
 
document.forms[0].elements[1] ou par
document.f1.elements[1]
 
A essayer, donc !

 

[edtdd]--Message édité par Mara's dad--[/edtdd]


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 20-07-2001 à 16:25:43    

ça marche, j'avais essayer déjà et ça n'avait pas marché, je devais avoir une autre erreur!
Merci
 
PS: le javascript et la liste sont rentrés!
 
http://forum.hardware.fr/sqlforum/ [...] fr.inc#bas
 
;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed