[php / javascript] - Programmation
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 ! 
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? 
Marsh Posté le 20-07-2001 à 15:12:12
Je l'ai finté pour cet exemple : 
 
echo" indexl=document.f1[0].options.length;"; 
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? 
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]
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 
  
 
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]???