[PHP / Javascript] surtout javascript

surtout javascript [PHP / Javascript] - Programmation

Marsh Posté le 18-07-2001 à 16:06:54    

Je comprend pas pourquoi le script qui suit marche avec IE mais pas avec Netscape? et Je comprends pas non plus pourquoi quand je remplace la variable $commune par $nom lors des appels aux fonctions affiche et ajouterliste, ça ne marche plus? C'est sans doute lié aux espaces ou aux apostrophes contenu dans $nom???
 
Pouvez m'aider s'il vous plaît?
 
   echo"<HTML>";
   echo"   <HEAD>";
   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"      }";
   echo"      function afficher(commune){";
   echo"               document.f1.nom.value=commune;";
   echo"               ;";
   echo"               ;";
   echo"      }";
   echo"   </script>";
   echo"   </HEAD>";
   echo"   <BODY>";
   echo"   <form name=\"f1\">";
   echo"     <TABLE border=\"0\">";
   echo"     <TR>";
   echo"       <TD>";
   echo"         <IMG src=\"http://126.234.1.4/carte/area/bretagne_area.jpg\" usemap=\"#map1\">";
   echo"         <MAP name=\"map1\">";
 
   $conn1 = Ora_Logon("scott","tiger" );
   $curs1 = ora_open($conn1);
   $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." shape=\"poly\" coords=\""."$coord"."\" onClick=\"ajouterliste("."$commune"." );\" onMouseOver=\"afficher("."$commune"." );\">";
               echo $chaine;
         }
   ora_close($curs1);
   echo"         </MAP>";
   echo"       </TD>";
   echo"       <TD>";
   echo"         <select size=7 name=liste>";
   echo"         </select>";
   echo"       <TD>";
   echo"       <TD>";
   echo"        <input type=\"text\" name=\"nom\">";
   echo"       </TD>";
   echo"     </TR>";
   echo"     </TABLE>";
   echo"   <form>";
   echo"   </BODY>   ";
   echo"</HTML>";
?>

Reply

Marsh Posté le 18-07-2001 à 16:06:54   

Reply

Marsh Posté le 18-07-2001 à 17:32:26    

J'ai trouvé pour le $nom :
 
$chaine=$chaine." shape=\"poly\" coords=\""."$coord"."\" onClick=\"ajouterliste('".addslashes($nom)."');\" onMouseOver=\"afficher('".addslashes($nom)."');\">";
 
Mais je comprend toujours pas pkoi ça marche pas sous netscape, il dessine bien la liste et le input text mais les fonctions ne sont pas appellées on dirai???

Reply

Marsh Posté le 18-07-2001 à 17:40:44    

Est ce que Netscape te pond une erreur ou il ne fait simplement rien ?

Reply

Marsh Posté le 18-07-2001 à 17:52:55    

Non, il ne fait rien!
Il affiche bien la carte avec la liste et le inputtext vides mais ensuite lorsque je me ballade sur la carte, il devrait afficher le nom de la commune dans le inputtext?
On dirait qu'il ne tient même pas compte des areas?

Reply

Marsh Posté le 18-07-2001 à 18:08:46    

Essaye de mettre un href=... dans ton area.
 
Il est chatouilleux netscape sur certain TAGS !


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

Marsh Posté le 19-07-2001 à 09:39:52    

En effet, avec href, ça marche mais je veux pas l'utiliser, je veux pas que ce soit un lien, je veut juste définir un area avec une fonction javascript quand on click dessus et quand on passe dessus.
Y a-t-il moyen de faire ça pour IE comme pour Netscape?

Reply

Marsh Posté le 19-07-2001 à 09:53:42    

Ben met le href, avec rien dedans href="", et ne change pas le reste !


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

Marsh Posté le 19-07-2001 à 10:01:59    

He non! si on met rien, il affiche l'index du répertoire courant!

Reply

Marsh Posté le 19-07-2001 à 10:07:17    

J'insiste :
 
HREF="" onclick="return toto();"
 
la fonction toto() fait le boulot que tu veux, et fait un return false; Comme çà, ca annule l'action du clic et il part pas sur une autre page !


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

Marsh Posté le 19-07-2001 à 10:18:15    

Avec ou sans le return, et un lien vide, il m'affiche l'index du répertoire courant!?
Sinon j'ai réussit avec un lien vers une étiquette interne mais c'est moins "propre".

Reply

Marsh Posté le 19-07-2001 à 10:18:15   

Reply

Marsh Posté le 19-07-2001 à 10:19:41    

Oui, j'ai déjà vus çà : href="#" tout simplement !


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

Marsh Posté le 19-07-2001 à 10:37:25    

ça marche avec un lien! # simple ou sur un objet de la page.
Y a pas un autre moyen?

Reply

Marsh Posté le 19-07-2001 à 10:37:54    

ça marche avec un lien! # simple ou sur un objet de la page.
Y a pas un autre moyen?

Reply

Marsh Posté le 19-07-2001 à 10:42:36    

Ben, j'ai pas netscape au boulot, alors je sais pas, mais normalement, un return false; devrai désactiver le lien...


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

Marsh Posté le 19-07-2001 à 10:55:17    

ok, je croyais que la fonction renvoyait faux, je l'avais pas ajouter (return false) dans la fonction. ça marche merci une fois de plus!

Reply

Marsh Posté le 19-07-2001 à 10:58:46    

De rien !
 
T'as vu çà : http://forum.hardware.fr/sqlforum/ [...] ache=cache
 
J'm'ai bien amusé !


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

Sujets relatifs:

Leave a Replay

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