Tableau PHP en parametre fonction Javascript
Résolu/Fermé
Rwick
Messages postés
59
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
25 septembre 2007
-
20 mars 2007 à 16:21
salut - 26 mars 2008 à 12:36
salut - 26 mars 2008 à 12:36
A voir également:
- Tableau PHP en parametre fonction Javascript
- Tableau croisé dynamique - Guide
- Fonction si et - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Telecharger javascript - Télécharger - Langages
8 réponses
Rwick
Messages postés
59
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
25 septembre 2007
9
20 mars 2007 à 17:00
20 mars 2007 à 17:00
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 )
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 )
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
20 mars 2007 à 16:50
20 mars 2007 à 16:50
Si tu souhaite appeller ta fonction javascript depuis php, voici la syntaxe :
En théorie ca devrait être bon :)
<?php echo '<script language="javascript">Dessine_Menu("'.$Titre_Page.'","'.$Partie_Page.'"); </script>'; ?>
En théorie ca devrait être bon :)
Serge_La
Messages postés
407
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
3 mars 2009
47
20 mars 2007 à 18:58
20 mars 2007 à 18:58
Bonjour,
Je ne suis pas certain de comprendre mais il est certain que mettre le nom de la variable entre guillemets comme tu fais:
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:
ou
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Rwick
Messages postés
59
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
25 septembre 2007
9
21 mars 2007 à 09:58
21 mars 2007 à 09:58
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é ;)
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é ;)
Rwick
Messages postés
59
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
25 septembre 2007
9
21 mars 2007 à 10:06
21 mars 2007 à 10:06
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)
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)
Rwick
Messages postés
59
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
25 septembre 2007
9
21 mars 2007 à 11:49
21 mars 2007 à 11:49
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
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
Serge_La
Messages postés
407
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
3 mars 2009
47
21 mars 2007 à 19:20
21 mars 2007 à 19:20
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.
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.