[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]???