8797 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai un menu dans mon site qui est construit suite à une recherche dans deux tables mysql :
- cat pour catégorie globale
- scat pour sous catégorie

Ce menu ne présente aucun dynamisme d'arborescence. Ce à quoi j'aimerai remédier.

Pour ce menu, j'ai adapté le petit script suivant en javascript :

<td><a href="javascript:go(1)"<strong><?echo"$result[name_fr]";?></strong></a><DIV ID='$rubrique' STYLE='position:relative'></DIV></td>


qui appelle la fonction

<script language="JavaScript"> 
function go(n)
{
document.getElementById("rubrique"+n).style.position = 'relative';";
rub2= ' <a href="http://www.truc.php">JavaScript</a><br>';
document.getElementById("rubrique"+n).innerHTML = rub2 + "   <a href='javascript:fermer("+n+")'><b>Fermer</b></a>";
 }
</SCRIPT>


J'aimerai insérer ce script dans ma recherche des noms de catégories globales et sous-catégorie.

J'ai dès lors fait comme suit, ça fonctionne bien pour mentionner les catégories, mais je n'arrive pas à mettre les sous catégories (appel à la fonction javascript avec url ou insertion php entre les print javascript)...

Quelqu'un pourrait-il m'aider ? (je n'arrive pas à intégrer les noms des sous-catégories...)

<?
$i=1;
$query = mysql_query("SELECT * FROM cat ORDER BY name_fr DESC");
while($result = mysql_fetch_array($query)) {
                        $a=1;
                        $query2 = mysql_query("SELECT * FROM scat WHERE cat_id=$result[id] ORDER BY name_fr ASC");
                        while($result2 = mysql_fetch_array($query2)) {
                                $stockadresse ='<a href="photos.php?cat=$result[id]&scat=$result2[id]" class="linkInside">$result2[name_fr]</a><br>';
                                $totalstock = $totalstock + $stockadresse;
                                $a=$a+1;
                        }
ces deux fonctions ci-dessus recherches catégories et sous catégories liées.
Ci-dessous essai d'intégration du code pour le menu dans lequel devrait être placé les noms des sous-catégories. Mais je n'y arrive pas.

        echo"<tr>";

        print"<script language=\"JavaScript\"> \n" ;
        print"function go(n, message)";
        print"       {";
        print"        document.getElementById(\"rubrique\"+n).style.position = 'relative';";
        print"         rub2 = '   <a href=\"http://truc.php\">JavaScript</a><br>';";
        print"        document.getElementById(\"rubrique\"+n).innerHTML = rub2 + \"   <a href='javascript:fermer(\"+n+\")'><b>Fermer</b></a>\";";
        print"        }";
        print"</SCRIPT>";

        $idsection=$result[id];
        $phrase = "<a href='http://www.easy-script.com/javascript.php'>JavaScript</a><br>";
        ?>
ci-dessous réalisation du menu.
Affichage des catégories et appel pour affichage des sous catégories.
Mais la fonction javascript n'aime pas que je,place du code php entre ses lignes.
Comment puis-je faire ?

                <td><a href="javascript:go(n)" class="linktop" <strong><?echo"$result[name_fr]";?></strong></a>
        <?
        echo"<DIV ID='$rubrique' STYLE='position:relative'></DIV></td></tr>";
        $i=$i+1;
        $rubrique="rubrique$i";
}
?>

Un tout grand merci
Modifié par PHPhil (02 Sep 2005 - 23:10)
Un truc m'échappe dans ta fonction :
dans la variable $result, c'est un tableau avec toutes les infos catégories que tu as, or tu t'en sers comme s'il contenait l'id de la catégorie.
Y'a pas un bug. N'aurais-tu pas oublié d'extraire du tableau $result l'id de la catégorie (et celui de la sous-catégorie dans l'autre tableau, $result2) ?
Salut,

$result permet le vecteur de mes données... Il contient en effet toutes les données dont j'ai besoin pour affichage écran + recherche sous cat (dont l'ID). Sans appel Javascript, mes requêtes de recherche fonctionnent correctement.

Mon problème est en fait le suivant :
- je n'arrive pas à intégrer le code PHP suivant dans le javascript (tout en passant dans la fonction la clé de la catégorie):
(il ne reconnaît pas le code php intégré)


print"<script language=\"JavaScript\"> \n" ;
print"function go(n, codecatégorie)";
print" {";
print" document.getElementById(\"rubrique\"+n).style.position = 'relative';";


//print" rub2 = ' <a href=\"http://truc.php\">JavaScript</a><br>';";

[i]ligne ci-dessus remplacé par le code PHP[/i]

$cat= codecategorie;
$query2 = mysql_query("SELECT * FROM scat WHERE cat_id=$cat  ORDER BY name_fr ASC");
while($result2 = mysql_fetch_array($query2)) {
$stockadresse ='<a href="photos.php?cat=$result[id]  &scat=$result2[id]  " class="linkInside">$result2[name_fr]</a><br>';
$totalstock = $totalstock + $stockadresse;
$a=$a+1;
}


print" document.getElementById(\"rubrique\"+n).innerHTML = rub2 + \" <a href='javascript:fermer(\"+n+\")'><b>Fermer</b></a>\";";
print" }";
print"</SCRIPT>";


Dans ce cas, j'essaye d'envoyer l'url directement dans la fonction, mais parvient alors une erreur de syntaxe...
ex :

$souscat = "<a href='http://www.truc.php'>JavaScript</a><br>";

[i]avec appel à fonction[/i]

<td><a href="javascript:go(<?echo"$i,$souscat";?>)" 


D'où le fait que je suis un peu perdu... Smiley confus
Modifié par PHPhil (03 Sep 2005 - 11:46)