Javascript et PHP

Eléphanteau du PHP | 28 Messages

06 oct. 2005, 13:30

hellowwww.

CE que j'essaie de faire estr peut être un peu compliqué, mais j'y suis parvenu. Par contre le résultat n'est pas 100% satisfaisant.
J'aimerais savoir, si l'on peut générer du code javascript via php, et l'exécuter.
Je m'explique. J'aimerais générer un menu dynamique javascript, mais via php, avec des données que j'ai en base.
j'ai réussi à générer le code javascript que je voulais. Mais par contre ce code se trouve dans un fichier php, alors comment dois-je faire pour qu'il s'exécute en mode javascript.
whouaaaaa si vous avez compris c fort, moi même j'en perd mon latin.

merci à ceux ou celles qui pourront m'aider.
Peace on Earth

Mammouth du PHP | 19672 Messages

06 oct. 2005, 13:34

Bien sur quetu peux, ensuite quand tu appelles la page, PHP va générer la page avec le JavaScript que tu auras inclus... Je visualise mal la difficulté que tu rencontre : si tu nous mettais un exemple pour illustrer ce que tu as fait, des explications sur ce que tu attends et une description de ce que tu obtiens en réalité ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

06 oct. 2005, 13:34

Rien ne t'empêche de construire ton code JS avec du PHP comme tu construit ton code HTML avec PHP

Sinon, tu viens de Villefontaine dans le 38 ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 28 Messages

06 oct. 2005, 13:38

voici donc le code de ma page menu.php
lors de l'exécution j'avais des erreurs de cote que j'ai résolu, mais maintenant il ne m'affiche rien à l'écran. C'est tout blanc. Mais si je regarde le sous généré par php il est conforme à ce que j'ai sur le fichier javascript que j'ai téléchargé.


PS: oui je suis de villefontaine dans le 38 ;-)

<?

include('../config.inc.php');

//connexion à la base
$link = mysql_connect($host,$user,$pass) or die('Erreur de connexion à la base : '.mysql_error());
mysql_select_db($db) or die('Erreur 2:'.mysql_error());

//Recherche du nombre de SERVICES
$rqt = 'SELECT COUNT(ID_SERVICE) FROM SERVICE ';
$result = mysql_query($rqt,$link) or die('Erreur d\'exécution de la requête de comptage :'.mysql_error());
$row = mysql_fetch_row($result);
$total = $row[0];

//Recherche des libellés des SERVICES
$rqt = 'SELECT ID_SERVICE,LIBELLE FROM SERVICE ';
$result = mysql_query($rqt,$link) or die('Erreur d\'exécution de la requête des libellés : '.mysql_error());

echo 'document.write("<STYLE TYPE="text/css">\na.mv2style {color:#FFFFFF;text-decoration:none;}\na:hover.mv2style {color:;text-decoration:underlined;}\n</STYLE>");';

echo 'mv2_menu = new Array();';
echo 'mv2_lien = new Array();';

//si on a récupéré un résultat on l'affiche
$indice1 = 0;
if ($total)
{
//début du tableau
while($row =mysql_fetch_array($result))
{
//préparations de la liste des services
$indice1++;
echo "mv2_menu[".$indice1."] = '".$row['LIBELLE']."'";

//Recherche du nombre de personnes par service
$rqt2 = 'SELECT COUNT(ID_EQUIPE) FROM EQUIPE WHERE ID_SERVICE = '.$row['ID_SERVICE'];
$result2 = mysql_query($rqt2,$link) or die('Erreur d\'exécution de la requête de comptage de personnes:'.mysql_error());
$row2 = mysql_fetch_row($result);
$total2 = $row2[0];

//Recherche des nom de personnes
$rqt2 = 'SELECT ID_EQUIPE,NOM,PRENOM FROM EQUIPE WHERE ID_SERVICE = '.$row['ID_SERVICE'];
$result2 = mysql_query($rqt2,$link) or die('Erreur d\'exécution de la requête des nom : '.mysql_error());

//si on a récupéré un résultat on l'affiche
$indice2 = 0;
if ($total2)
{
//début du tableau
while($row2 =mysql_fetch_array($result2))
{
$indice2++;
echo "mv2_lien[".$indice1."] += '<A HREF='equipe.php?page=affiche&id=".$row2['ID_EQUIPE']."' target='photo' CLASS=mv2style>".$row2['NOM']." ".$row2['PRENOM']."</A><BR>";
}
}
mysql_free_result($result2);

}
}

mysql_free_result($result);

echo 'mv2_pos = -1;';

echo 'function mv2_menu_raw()';
echo ' {';
echo ' mv2_aff = "<TABLE BORDER=0 BGCOLOR=#000000 CELLPADDING=0 CELLSPACING=0 WIDTH=160><TR><TD><TABLE BORDER=0 CELLPADDING=03 CELLSPACING=1 WIDTH=100%>";';

echo ' for(a=0;a<mv2_menu.length;a++)';
echo ' {';
echo ' if(mv2_pos == a || !document.getElementById)';
echo ' bgcolor = "#6699CC";';
echo ' else';
echo ' bgcolor = "#006699";';
echo ' if(document.getElementById)';
echo ' mv2_aff += "<TR><TD BGCOLOR="+bgcolor+"><A HREF=\"#\" onMouseOver=\"mv2_pos="+a+";mv2_menu_draw()\" CLASS=mv2style><FONT FACE=\"Verdana\" SIZE=2>"+mv2_menu[a]+"</FONT></A></TD></TR>";';
echo ' else';
echo ' mv2_aff += "<TR><TD BGCOLOR="+bgcolor+"><FONT FACE=\"Verdana\" SIZE=2 COLOR=#FFFFFF>"+mv2_menu[a]+"</FONT></TD></TR>"';
echo ' if(mv2_pos == a || !document.getElementById)';
echo ' mv2_aff += "<TR><TD BGCOLOR="+bgcolor+"><FONT FACE=\"Verdana\" SIZE=1>"+mv2_lien[a]+"</FONT></TD></TR>";';
echo ' }';

echo ' mv2_aff += "</TABLE></TD></TR></TABLE>";';
echo ' if(document.getElementById)';
echo ' document.getElementById("mv2").innerHTML = mv2_aff;';
echo ' else';
echo ' document.write(mv2_aff);';
echo ' }';

echo 'mv2_menu_draw();';
?>
Peace on Earth

Mammouth du PHP | 1776 Messages

06 oct. 2005, 13:41

Alors, pour executer un code javascript dans un fichier php ou html, faut faire:
<script language="javascript" type="text/javascript">
<!--
ton javascript ici
//-->
</script>
ensuite, si tu veux inclure une variable php dans javascript, tu fais un truc du style:
<script language="javascript" type="text/javascript">
<!--
var mavar = "<? echo $variable_php; ?>";
//-->
</script>
Ou est la difficulté ?

Mammouth du PHP | 1776 Messages

06 oct. 2005, 13:44

oulala ... tu confonds tout !
Pour que ton javascript fonctionne, il faut le déclarer ! utilise les balise script que je tai montré au dessus, et privilégie la ffichage de données php comme je tai montré. Le mieux et de mettre le javascript en brut et les données dynamiques en php. :wink:

Eléphanteau du PHP | 28 Messages

06 oct. 2005, 13:44

merci, mais je suis le plus gros c........ de la terre.
J'ai un gros manque, et une grosse fatigue car j'ai plein de problème de cottes ou de ; qui manquent.

Merci encore, si vous avez des suggestions n'hésitez pas à les mettres tout de même.
Peace on Earth

Mammouth du PHP | 1776 Messages

06 oct. 2005, 13:55

<?
include('../config.inc.php'); 
$link = mysql_connect($host,$user,$pass) or die('Erreur de connexion à la base : '.mysql_error()); 
mysql_select_db($db) or die('Erreur 2:'.mysql_error());
$rqt = 'SELECT COUNT(ID_SERVICE) FROM SERVICE '; 
$result = mysql_query($rqt,$link) or die('Erreur d\'exécution de la requête de comptage :'.mysql_error()); 
$row = mysql_fetch_row($result); 
$total = $row[0]; 
$rqt = 'SELECT ID_SERVICE,LIBELLE FROM SERVICE '; 
$result = mysql_query($rqt,$link) or die('Erreur d\'exécution de la requête des libellés : '.mysql_error()); 
?>
<STYLE TYPE="text/css">
a.mv2style	{
	color:#FFFFFF;
	text-decoration:none;
}

a:hover.mv2style {
	color:;
	text-decoration:underlined;
}
</STYLE>
<script language="javascript" type="text/javascript">
<!--
mv2_menu = new Array(); 
mv2_lien = new Array();
<?
$indice1 = 0;
if ($total)	{ 
	while($row = mysql_fetch_array($result))	{ 
		$indice1++; 
		echo "mv2_menu[".$indice1."] = '".$row['LIBELLE']."'"; 
		$rqt2 = 'SELECT COUNT(ID_EQUIPE) FROM EQUIPE WHERE ID_SERVICE = '.$row['ID_SERVICE']; 
		$result2 = mysql_query($rqt2,$link) or die('Erreur d\'exécution de la requête de comptage de personnes:'.mysql_error()); 
		$row2 = mysql_fetch_row($result); 
		$total2 = $row2[0]; 
		$rqt2 = 'SELECT ID_EQUIPE,NOM,PRENOM FROM EQUIPE WHERE ID_SERVICE = '.$row['ID_SERVICE']; 
		$result2 = mysql_query($rqt2,$link) or die('Erreur d\'exécution de la requête des nom : '.mysql_error()); 
		$indice2 = 0; 
		if ($total2)	{ 
			while($row2 = mysql_fetch_array($result2))	{ 
				$indice2++; 
				echo "mv2_lien[".$indice1."] += '<A HREF='equipe.php?page=affiche&id=".$row2['ID_EQUIPE']."' target='photo' CLASS=mv2style>".$row2['NOM']." ".$row2['PRENOM']."</A><BR>"; 
			} 
		} 
		mysql_free_result($result2); 
	} 
} 
mysql_free_result($result); 
?>
mv2_pos = -1;
function mv2_menu_raw()	{ 
	mv2_aff = "<TABLE BORDER=0 BGCOLOR=#000000 CELLPADDING=0 CELLSPACING=0 WIDTH=160><TR><TD><TABLE BORDER=0 CELLPADDING=03 CELLSPACING=1 WIDTH=100%>"; 
	for(a=0;a<mv2_menu.length;a++)	{ 
		if(mv2_pos == a || !document.getElementById) 
 			bgcolor = "#6699CC"; 
		else
			bgcolor = "#006699"; 
		if(document.getElementById)
			mv2_aff += "<TR><TD BGCOLOR="+bgcolor+"><A HREF=\"#\" onMouseOver=\"mv2_pos="+a+";mv2_menu_draw()\" CLASS=mv2style><FONT FACE=\"Verdana\" SIZE=2>"+mv2_menu[a]+"</FONT></A></TD></TR>"; 
 		else 
			mv2_aff += "<TR><TD BGCOLOR="+bgcolor+"><FONT FACE=\"Verdana\" SIZE=2 COLOR=#FFFFFF>"+mv2_menu[a]+"</FONT></TD></TR>" 
		if(mv2_pos == a || !document.getElementById) 
			mv2_aff += "<TR><TD BGCOLOR="+bgcolor+"><FONT FACE=\"Verdana\" SIZE=1>"+mv2_lien[a]+"</FONT></TD></TR>"; 
 	}
mv2_aff += "</TABLE></TD></TR></TABLE>";
if(document.getElementById)
	document.getElementById("mv2").innerHTML = mv2_aff;
else
	document.write(mv2_aff);
}
mv2_menu_draw(); 
//-->
</script>
essaies ca :wink:

Eléphanteau du PHP | 28 Messages

06 oct. 2005, 15:22

j'ai essayé ton source mais ça ne change rien, il y a toujours page blanche...
Merci tout de même...

Allons allons, je persévère, luttons contre l'impatience!
Peace on Earth

Mammouth du PHP | 1776 Messages

06 oct. 2005, 15:36

ton code n'est probablement pas correct dans ce cas...
J'ai des doutes sur if ($total) :?
Montre la source du fichier lorsqu'il est en page blanche stp

Eléphanteau du PHP | 28 Messages

06 oct. 2005, 15:40

voici le code généré par mon script php (après avoir fais des sauts de ligne pour la lisibilité)

<SCRIPT LANGUAGE="JavaScript">

document.write("<STYLE TYPE="text/css">\na.mv2style {color:#FFFFFF;text-decoration:none;}\na:hover.mv2style {color:;text-decoration:underlined;}\n</STYLE>");

mv2_menu = new Array();
mv2_lien = new Array();

mv2_menu[1] = 'Gérance';
mv2_lien[1] += '<A HREF="equipe.php?page=affiche&id=1" target="photo" CLASS=mv2style>BOISSON Laurence</A><BR>';
mv2_menu[2] = 'Direction';
mv2_lien[2] += '<A HREF="equipe.php?page=affiche&id=6" target="photo" CLASS=mv2style>CHOUBRAC Bruno</A><BR>';
mv2_menu[3] = 'Service Technique';
mv2_lien[3] += '<A HREF="equipe.php?page=affiche&id=10" target="photo" CLASS=mv2style>GALDAMES Guido</A><BR>';
mv2_lien[3] += '<A HREF="equipe.php?page=affiche&id=7" target="photo" CLASS=mv2style>CHOUBRAC Bruno</A><BR>';
mv2_menu[4] = 'Développement';
mv2_lien[4] += '<A HREF="equipe.php?page=affiche&id=11" target="photo" CLASS=mv2style>GALDAMES Guido</A><BR>';
mv2_lien[4] += '<A HREF="equipe.php?page=affiche&id=8" target="photo" CLASS=mv2style>CHOUBRAC Bruno</A><BR>';
mv2_menu[5] = 'Réalisation Internet';
mv2_lien[5] += '<A HREF="equipe.php?page=affiche&id=12" target="photo" CLASS=mv2style>GALDAMES Guido</A><BR>';
mv2_menu[6] = 'Service Commercial';
mv2_lien[6] += '<A HREF="equipe.php?page=affiche&id=2" target="photo" CLASS=mv2style>BOISSON Laurence</A><BR>';
mv2_lien[6] += '<A HREF="equipe.php?page=affiche&id=9" target="photo" CLASS=mv2style>CHOUBRAC Bruno</A><BR>';
mv2_lien[6] += '<A HREF="equipe.php?page=affiche&id=13" target="photo" CLASS=mv2style>GALDAMES Guido</A><BR>';
mv2_menu[7] = 'Service Administratif';
mv2_lien[7] += '<A HREF="equipe.php?page=affiche&id=3" target="photo" CLASS=mv2style>BOISSON Laurence</A><BR>';

mv2_pos = -1;

function mv2_menu_raw()
{
mv2_aff = "<TABLE BORDER=0 BGCOLOR=#000000 CELLPADDING=0 CELLSPACING=0 WIDTH=160><TR><TD><TABLE BORDER=0 CELLPADDING=03 CELLSPACING=1 WIDTH=100%>";
for(a=0;a<mv2_menu.length;a++)
{
if(mv2_pos == a || !document.getElementById)
bgcolor = "#6699CC";
else
bgcolor = "#006699";

if(document.getElementById)
mv2_aff += "<TR><TD BGCOLOR="+bgcolor+"><A HREF=\"#\" onMouseOver=\"mv2_pos="+a+";
mv2_menu_draw()\" CLASS=mv2style><FONT FACE=\"Verdana\" SIZE=2>"+mv2_menu[a]+"</FONT></A></TD></TR>";
else
mv2_aff += "<TR><TD BGCOLOR="+bgcolor+"><FONT FACE=\"Verdana\" SIZE=2 COLOR=#FFFFFF>"+mv2_menu[a]+"</FONT></TD></TR>"
if(mv2_pos == a || !document.getElementById)
mv2_aff += "<TR><TD BGCOLOR="+bgcolor+"><FONT FACE=\"Verdana\" SIZE=1>"+mv2_lien[a]+"</FONT></TD></TR>";
}
mv2_aff += "</TABLE></TD></TR></TABLE>";
if(document.getElementById)
document.getElementById("mv2").innerHTML = mv2_aff;
else
document.write(mv2_aff);
}
mv2_menu_draw();

</script>
Peace on Earth

Mammouth du PHP | 19672 Messages

06 oct. 2005, 15:44

Modération : lelapinou, voudrais-tu utiliser quand tu postes du code les boutons prévus à cet effet: [php] ou au minimum [code] : c'est une simple question de respect des autres. Tu trouves que c'est agréable à lire ton code en vrac sans indentation ni coloration syntaxique ???

J'en ai marre d'éditer les messages pour corriger tout le monde sur ce point
:!:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1885 Messages

06 oct. 2005, 15:46

Essaie d'utiliser la balise

Code : Tout sélectionner

lorsque tu envoies du Javascript et la balise [php] pour PHP. Ainsi le code sera un peu plus lisible et facilitera les membres à te répondre.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphanteau du PHP | 28 Messages

06 oct. 2005, 15:49

Mille excuses. C'est complètement in-intentionel. Veuillez me pardonner, je promet de rectifier cette erreur à l'avenir.
Peace on Earth

Mammouth du PHP | 1776 Messages

06 oct. 2005, 15:53

ta fonction s'appelle mv2_menu_raw()

et tu appelles mv2_menu_draw()

Y'aurait pas comme un problème? :roll: