Par défaut rendu d'une fonction twig
Bonjour, j'ai l'erreur suivante lors du rendu du resultat d'une fonction twig:

$(".ariane").html('{{ knp_menu_render('breadcrumd',{
'currentAsLink':false,
'template': 'EcommerceUtilityBundle:Default:knp_menu.html.twig'
})}}');

SyntaxError: unterminated string literal
$(".ariane").html('il me met une flèche ici après la simple cote <ul class="breadcrumbs">..........

Pour information fonction knp_menu_render() retourne une chaine html, voir ci-dessous

<ul class="breadcrumbs">
     <li class="first"> 
         <a href="/catalogue"><span>Accueil</span><span class="arrow">></span></a>        
    </li>
         <li class="current last"><span>PC portable polyvalents</span>        
    </li>
</ul>

j'ai essayer différent filtre comme par exemple le filtre escape('js'):

$(".ariane").html('{{ knp_menu_render('breadcrumd',{
'currentAsLink':false,
'template': 'EcommerceUtilityBundle:Default:knp_menu.html.twig'
})|escape('js') }}');
le resultat fonctionne mais j'ai ceci dans l'affichage du code source:
Code :Sélectionner tout - Visualiser dans une fenêtre à part
$(".ariane").html('\x20\x20\x20\x20\x20\x20\x20\x20\x3Cul\x20class\x3D\x22breadcrumbs\x22\x3E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x.......

et si je met le filtre escape('html') ca ne fonctionne pas:

$(".ariane").html('{{ knp_menu_render('breadcrumd',{
'currentAsLink':false,
'template': 'EcommerceUtilityBundle:Default:knp_menu.html.twig'
})|escape('html') }}');

Résultat:

(".ariane").html(' <ul class="breadcrumbs">
<li class="first"> <a href="/catalogue">

Une idée les amis sur cette affichage suspect

Merci a tous si vous avez la moindre idée

4 réponses


Ctrl+U et check le code généré, apparemment tu as un problème de chaîne de caractère.

chlock
Auteur

J'ai cette erreur quand j'écris cela:

SyntaxError: missing ; before statement
<ul class=" (il me dit l'erreur ici,le point virgule avant) breadcrumbs">

et le code source généré:

$(".ariane").html(" <ul class="breadcrumbs">
<li class="first"> <a href="/catalogue">
<span>Accueil</span>
<span class="arrow">></span>
</a>
</li>
<li class="current last"> <span>PC portable polyvalents</span>
</li>

mon sript est le suivant :

$(".ariane").html("{{ knp_menu_render('breadcrumd',{
'currentAsLink':false,
'template': 'EcommerceUtilityBundle:Default:knp_menu.html.twig'
})}}");

par ailleurs si j'évite des retour a la ligne dans mon script l'erreur change pour:

SyntaxError: missing ) after argument list
<ul class="il me dit l'erreur ici,le point virgule breadcrumbs">

Sorcier cette histoire l'ami

Merci en tout cas de ton aide

Bonjour,

Attention au " et ', votre problème viens de là. Il vous faut échapper ces codes.

chlock
Auteur

Oui, j'essaie effectivement d'échapper ces différents caractères mais impossible pour l'instant.

De plus j'ai essayé le filtre twig "|escape('js')", le script fonctionne mais la fonction Javascript et de cette forme asci:

http://donsnotes.com/tech/charsets/ascii.html

$(".ariane").html('\x20\x20\x20\x20\x20\x20\x20\x20\x3Cul\x20class\x3D\x22breadcrumbs\x22\x3E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x.....

$(".ariane").html('{{ knp_menu_render('breadcrumd',{
'currentAsLink':false,
'template': 'EcommerceUtilityBundle:Default:knp_menu.html.twig'
})|escape('js') }}');