Flux rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Tableau PHP en parametre fonction Javascript

Rwick, le mardi 20 mars 2007 à 16:21:20
Bonjour, jeune webmaster d'un site ecrit en Php/MySql, je souhaite agrémenter le site d'un menu en javascript que je ve renseigner via une requete sur la base MySql.
Seule problème le passage des deux variables ( tableau de chaine pour les deux ) dans la fonction javascript :

Dessine_Menu('.$Titre_Page.','.$Partie_Page.');

la fonction Dessine_Menu ne prend pa les valeurs des tableaux mais seulement les chaines "$Titre_Page" et "$Partie_Page".

Que puis-je faire pour passer les tableaux en parametres afin que javascript me les prennes comme des tableau de valeurs ( chaines ) et non des chaines ($Titre_Page et $Partie_Page ) ???

En espérant avoir été assez claire dans ma demande,
Merci d'avance :)
Configuration: Windows XP
Firefox 2.0.0.2
Répondre à Rwick  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kij_82, le mardi 20 mars 2007 à 16:50:39
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 :) ~
Répondre à kij_82

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Rwick, le mardi 20 mars 2007 à 17:00:59
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 )
Répondre à Rwick

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Serge_La, le mardi 20 mars 2007 à 18:58:54
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.
Répondre à Serge_La

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Rwick, le mercredi 21 mars 2007 à 09:58: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é ;)
Répondre à Rwick

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Rwick, le mercredi 21 mars 2007 à 10:06:48
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)
Répondre à Rwick

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Rwick, le mercredi 21 mars 2007 à 11:49:47
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
Répondre à Rwick

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Serge_La, le mercredi 21 mars 2007 à 19:20:10
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.
Répondre à Serge_La

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 salut, le mercredi 26 mars 2008 à 12:36:44
ne ecrivez pas $_post["gg"] entre " "
Répondre à salut
Fonction PHP depuis fonction javascript (Résolu)Bonjours, je cherche à faire une mise à jour d'une base de donnée depuis une fonction javascript, je voudrais donc savoir comment je peux faire ? J'ai d'abord pensé à appeller une fonction PHP qui le fait mais ca foire bien correctement... www.commentcamarche.net/forum/affich-1492810-fonction-php-depuis-fonction-javascript
Variable Php, parametre fonction Javascript (Résolu)Bonjour, Je développe depuis peu, et je rencontre de temps en temps des petits problemes, mais celui la me bloque vraiment! Voila, mon probeme est simple. J'ai une variable Php : $VL_TRIGRAMME; // qui contient simplement 'JGI' j'ai... www.commentcamarche.net/forum/affich-2540628-variable-php-parametre-fonction-javascript
Xml en tableau php (Résolu)Bonjour tout le monde, j'aimerais conventir un fichier xml en tableau php, j'utilise php 4 et domxml si jamais j'aimerais printer mes infos comme cela : $a = array ('a' => 'pomme', 'b' =>... www.commentcamarche.net/forum/affich-4109153-xml-en-tableau-php
[PHP] mes PHP ne fonctionne plus.... (Résolu)Salut, j'ai installé le derniere de PHP : php-5.1.6 et depuis, mes php ne fonctionnent plus. en cherchant un peu, j'ai trouvé la solution, en fait avant, je mettais juste , et apparemment il faut maintenant mettre Le pb,... www.commentcamarche.net/forum/affich-2366114-php-mes-php-ne-fonctionne-plus
Passer des paramètres dans javascript (Résolu)Bonjour, j'ai une fonction javascript : function suprcontrib(code,lieu) { msg = "confirmer la suppression ?"; choix=confirm(msg); if (choix) { url2="suprcontrib.php?contribution="+code; window.navigate(url2);... www.commentcamarche.net/forum/affich-3706286-passer-des-parametres-dans-javascript
Tableau d'images en javascript/html (Résolu)Bonjour, voilà j'aimerais construire un tableau d'images en javascript, je m'explique : par exemple, j'aimerais, plutôt que des valeurs ou des cases, insérer des images (pour un jeu de morpion par exemple, on met 9 images sous la... www.commentcamarche.net/forum/affich-2453820-tableau-d-images-en-javascript-html
MERISE - Modèle conceptuel de la communication Paramétrage du réseau Arrivé là, on sait comment le réseau fonctionne, comment le neurone fonctionne, et comment l'ensemble apprend, mais il serait illusoire de croire qu'il suffit de mettre quelques neurones, les... www.commentcamarche.net/neurones/rnparametrage.php3
PHP - Les fonctions On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du programme une série... www.commentcamarche.net/php/phpfonc.php3
Toutes les réponses pour « tableau PHP en parametre fonction Javascript »