8768 sujets

Développement web côté serveur, CMS

Bonjour,

Je précise tout d'abord que je suis vraiment néophyte en js et php, mais j'essaie de bricoler un site en php, en faisant un template en php
Je voudrais insérer le code javascript suivant dans mon fichier php :
 $(function() {
    $( '#dl-menu' ).dlmenu({
        animationClasses : { classin : 'dl-animate-in-2', classout : 'dl-animate-out-2' }
        });
    });

j'ai mis ce code entre des appels
echo '<script> </script>'."\n";
, mais cela ne marche pas et j'ai une erreur systématique du type [codeParse error: syntax error, unexpected '$', expecting ',' or ';'[/code]
Pourriez vous m'aidez à régler ce problème, a priori de syntaxe.
Merci d'avance et désolé si la question est stupide.
Gérard
Modifié par cezabs (24 Jun 2014 - 17:47)
Encapsuler ton code HTML dans des chaines de caractères PHP pour l'afficher à coup de echo est définitivement la mauvaise façon de faire.

Une meilleure manière de procéder est de tirer partie du fait que PHP fait office de langage de "templating". Tu peux donc travailler de cette manière :


<?php

// ici ton code PHP avec les traitements qui vont bien

// puis affichage :
?>
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">

<title><?php echo $title ?></title>

<meta name="description" content="<?php echo $meta_description ?>">

<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>

<?php /* affichage du contenu... */ ?>

<script>
$(function() {
  $( '#dl-menu' ).dlmenu({
    animationClasses : { classin : 'dl-animate-in-2', classout : 'dl-animate-out-2' }
  });
});
</script>
</body>
</html>


Après c'est mieux si tu sépares tes templates dans des fichiers séparés et que tu ne gardes que du PHP dans les fichiers qui font les traitements.
Merci de cette réponse très rapide.
Mais peut-être me suis je fait mal comprendre, J'ai déjà un fichier template.php qui contient ce que tu précises (divers code php, affichage doctype, meta, etc..).
j'y ai également intégré divers appels à fichier javascript (du type
echo '<script type="text/javascript" src="'.$context['url_to_root'].'skins/amazium/js/jquery-1.11.1.min.js"></script>'."\n";
et je "ferme" le fichier php par
echo '</body>'."\n";echo '</html>';?>


Par extrapolation d'un exemple html, je veux donc y ajouter le bout de script cité précédemment avant la fin du fichier php.
Ce que tu sembles proposer est la structure d'un fichier html avec le bon bout de code à la fin.
Je précise que mon site (pour lequel je tente de faire ce template) est construit sur un cms qui fonctionne en php.
A noter que si j’enlève ce bout de code de mon fichier php, tout le reste marche bien, sauf la fonction associée (qui est un menu particulier).
en espérant avoir clarifié ma demande.
Tu t'es bien fait comprendre et je t'ai donné une méthode pour travailler (plus) proprement par rapport au fonctionnement de PHP et au développement Web en général.
Tu as bien inséré ton code javascript en dehors des balises php? Ton erreur suggère que le code javascript est parsé par php ce qui ne doit pas être le cas (comme dans l'exemple de FraiseTagada99).