|
|
|
|
Configuration: Windows XP Firefox 2.0.0.2
Si tu souhaite appeller ta fonction javascript depuis php, voici la syntaxe :
<?php
echo '<script language="javascript">Dessine_Menu("'.$Titre_Page.'","'.$Partie_Page.'"); </script>';
?>
En théorie ca devrait être bon :) ~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~ |
Merci du coup de main ;)
cela ne me fais plus d'erreur sur l'appel de la fonction via php ( GG mek :p ) mais.. car il y a un mais... ( hélas oui :X ) j'ai un otre appel de cette fonction javascript entre les balise <SCRIPT> Dessine_Menu(".$Titre_Page.",".$Partie_Page."); </SCRIPT> pitite précision : 1) J'ai un appel de cette fonction entre mes balise <BODY> //Creation du Menu Javascript $Menu='<DIV ID=menu_java></DIV><script language=javascript>Dessine_Menu("'.$Titre_Page.'","'.$Partie_Page.'");</script>'; </BODY> 2) Et un appel dans le javascript : <script> position_menu = -1; function Dessine_Menu(onglet_menu,onglet_lien) { position_menu = -1; affichage_menu = "<table width=130 height=30 border=0 cellpadding=0 cellspacing=0><TR><TD><TABLE BORDER=0 height=20 CELLPADDING=0 CELLSPACING=7 WIDTH=100%>"; for(a=0;a<onglet_menu.length;a++) { if(position_menu == a || !document.getElementById) { bgcolor = "#6699CC"; } else { bgcolor = "#006699"; } if(document.getElementById) { affichage_menu += "<TR><TD><A HREF=\"#\" onMouseOver=\"position_menu="+a+";Dessine_Menu()\" CLASS=menu>"+onglet_menu[a]+"</A></TD></TR>"; } else { affichage_menu += "<TR><TD>"+onglet_menu[a]+"</TD></TR>" } if(position_menu == a || !document.getElementById) { affichage_menu += "<TR><TD>"+onglet_lien[a]+"</TD></TR>"; } } affichage_menu += "</TABLE></TD></TR></TABLE>"; if(document.getElementById) { document.getElementById("menu_java").innerHTML = affichage_menu; } else { document.write(affichage_menu); } } /*Voici le deuxieme appel de la fonction qui pose encore Pb*/ Dessine_Menu("'.$Titre_Page.'","'.$Partie_Page.'"); </script> Merci @ tous ceux qui pouorront m'eclairer (..vers le lumiere eternelle.. oopss..je m'egare ^^ xD ) |
Bonjour,
Je ne suis pas certain de comprendre mais il est certain que mettre le nom de la variable entre guillemets comme tu fais: Dessine_Menu("'.$Titre_Page.'","'.$Partie_Page.'");
dit au javascript de prendre la chaîne de caractères au lieu de la variable. Dans des cas semblables, il faut écrire différemment pour que javascript voit que $Titre_Page est une variable. Par exemple: Dessine_Menu("+'.$Titre_Page.'+","+'.$Partie_Page.'+");
ou Dessine_Menu($Titre_Page,$Partie_Page); ou encore avec l'aide de la fonction eval(). Ton probème semble être de transformer des valeurs MySql en variables javascript. J'espère que ça t'aide. Serge. |
Re-Bonjour et merci de ta participation serge.
Je n'est pas pu resoudre mon problème grace à ta solution et j'ai pencher pour un changement de facon de faire...Je ne passe plus de tableau ( php ) en parametre de ma fonction java, par contre je rempli des tableau java (via requete MySsql/PHP) les valeurs semble bien affecter a mes variables. mais une petite erreur doit subsister. Voici le code pour lequel j'ai obter : <HEAD> <script> onglet_menu= new Array(); onglet_lien= new Array(); <? $i=0; $Requete="Select P.Id_Page,P.Libelle_Page from page P"; $query=Query($Requete); if (mysql_num_rows($query) > 0) { while ($data=mysql_fetch_array($query)) { ?> onglet_menu[<?=$i;?>]=<?=$data['Libelle_Page'];?>; <? //Recherche des parties associées à cette page $Requete2="SELECT PA.Id_Partie,PA.Titre_Partie,PA.Description_Partie FROM partie PA,page_partie PP WHERE PP.Id_Page=".$data['Id_Page']." AND PP.Id_Partie=PA.Id_Partie"; $query2=Query($Requete2); if (mysql_num_rows($query2) > 0) { $Lien=""; while ($data2=mysql_fetch_array($query2)) { $TargetLien='page-'.$data['Id_Page'].'-'.$data2['Id_Partie'].'-'.$data2['Titre_Partie'].'.html'; $TitreLien=$data2['Titre_Partie']; $Lien.="<A HREF='".$TargetLien."'CLASS=menu>".$TitreLien."</A><BR>"; } ?> onglet_lien[<?=$i;?>]=<?=$Lien;?>; <? } //incrementation du compteur $i++; } } //die ("Lien : ".$Lien); ?> //alert("ONGLET menu : "+onglet_menu[0]+"ONGLET Lien : "+onglet_lien[0]); position_menu = -1; function Dessine_Menu() { //alert("ONGLET menu : "+onglet_menu[0]+"ONGLET Lien : "+onglet_lien[0]); affichage_menu = "<table width=130 height=30 border=0 cellpadding=0 cellspacing=0><TR><TD><TABLE BORDER=0 height=20 CELLPADDING=0 CELLSPACING=7 WIDTH=100%>"; for(a=0;a<onglet_menu.length;a++) { if(position_menu == a || !document.getElementById) { bgcolor = "#6699CC"; } else { bgcolor = "#006699"; } if(document.getElementById) { affichage_menu += "<TR><TD><A HREF=\"#\" onMouseOver=\"position_menu="+a+";Dessine_Menu()\" CLASS=menu>"+onglet_menu[a]+"</A></TD></TR>"; } else { affichage_menu += "<TR><TD>"+onglet_menu[a]+"</TD></TR>" } if(position_menu == a || !document.getElementById) { affichage_menu += "<TR><TD>"+onglet_lien[a]+"</TD></TR>"; } } affichage_menu += "</TABLE></TD></TR></TABLE>"; if(document.getElementById) { document.getElementById("menu_java").innerHTML = affichage_menu; } else { document.write(affichage_menu); } } Dessine_Menu(); </SCRIPT> </HEAD> avec en plus mon eternelle rappel a cette fonction entre balise <BODY> $Menu='<DIV ID=menu_java></DIV><script language=javascript>Dessine_Menu();</script>'; <?=$Menu;?> </BODY> Si quelqun pouvait me debloquer.. car je pense toucher au but :P (NEED A SOLUTION :X ) PS: lorsque je fait un die ("Lien : $Lien") , je voi egalement les valeur des tableau javascript (onglet_menu[0] et onglet_lien[0]) c pour sa que je sait qu'ils sont bien renseigné ;) |
Voici ce que me donne le die ("Lien : ".$Lien) une fois décommenté :
onglet_menu= new Array(); onglet_lien= new Array(); onglet_menu[0]=TEST PAGE; onglet_lien[0]=TEST TITRE PARTIE; (PS : Lien Actif et bien formater) Lien : TEST TITRE PARTIE (PS : Lien Actif et bien formater) |
WOOOTTTTTTT j'ai trouver ma SOLUTION xD
héhé :P un ti pe capricieux le javascript keu meme.. :X Voilou c sa : <HEAD> <script> onglet_menu= new Array(); onglet_lien= new Array(); <? $i=0; $Requete="Select P.Id_Page,P.Libelle_Page from page P"; $query=Query($Requete); if (mysql_num_rows($query) > 0) { while ($data=mysql_fetch_array($query)) { ?> onglet_menu[<?=$i;?>]='<?=$data['Libelle_Page'];?>'; <? //Recherche des parties associées à cette page $Requete2="SELECT PA.Id_Partie,PA.Titre_Partie,PA.Description_Partie FROM partie PA,page_partie PP WHERE PP.Id_Page=".$data['Id_Page']." AND PP.Id_Partie=PA.Id_Partie"; $query2=Query($Requete2); if (mysql_num_rows($query2) > 0) { $Lien=""; while ($data2=mysql_fetch_array($query2)) { $TargetLien="page-".$data['Id_Page']."-".$data2['Id_Partie']."-".Format_URL($data2['Titre_Partie']).".html"; $TitreLien=strtolower($data2['Titre_Partie']); $Lien.="<A HREF=".$TargetLien."CLASS=\"menu\">".$TitreLien."</A><BR>"; } ?> onglet_lien[<?=$i;?>]=''; onglet_lien[<?=$i;?>]+='<?=$Lien;?>'; <? } //incrementation du compteur $i++; } } ?> position_menu = -1; function Dessine_Menu() { affichage_menu = "<table width=130 height=30 border=0 cellpadding=0 cellspacing=0><TR><TD><TABLE BORDER=0 height=20 CELLPADDING=0 CELLSPACING=7 WIDTH=100%>"; for(a=0;a<onglet_menu.length;a++) { if(position_menu == a || !document.getElementById) { bgcolor = "#6699CC"; } else { bgcolor = "#006699"; } if(document.getElementById) { affichage_menu += "<TR><TD><A HREF=\"#\" onMouseOver=\"position_menu="+a+";Dessine_Menu()\" CLASS=menu>"+onglet_menu[a]+"</A></TD></TR>"; } else { affichage_menu += "<TR><TD>"+onglet_menu[a]+"</TD></TR>" } if(position_menu == a || !document.getElementById) { affichage_menu += "<TR><TD>"+onglet_lien[a]+"</TD></TR>"; } } affichage_menu += "</TABLE></TD></TR></TABLE>"; if(document.getElementById) { document.getElementById("menu_java").innerHTML = affichage_menu; } else { document.write(affichage_menu); } } Dessine_Menu(); </script> <HEAD> rien a changer ds le <BODY></BODY> c'etai juste une histoire de quote et guillement pour ceux qui ne verrai pa la difference ;) la chaine est apparement interpreter differement selon que l'on utilise l'un ou l'autre.. ( les boules ^^ :$ ) Merci a tous ceux qui ont essayer de me filer un coup de main ;) @ une prochaine (.... pour de nouveaux problème :/ mdr ) ++ Developper bien & Have Fun xD |
haha!
C'est une erreur courante. Faut pas oublier de séparer les chaînes des variables. Faut pas mettre des ' à l'intérieur de '. Faut séparer les " des ', quoi. Et faire attention aux apostrophes dans une chaine de texte dans une variable. Serge. |
ne ecrivez pas $_post["gg"] entre " " |