rendu d'une fonction twig

Par chlock, il y a 11 ans


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

Hamaryuginh, il y a 11 ans

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

chlock, il y a 11 ans

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

Carouge10, il y a 11 ans

Bonjour,

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

chlock, il y a 11 ans

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') }}');