2017-09-27 4 views
1

Je suis nouveau sur OctobreCMS, donc je ne connais pas beaucoup de choses. J'ai lu la documentation Octobre et je sais comment passer des variables lors de l'utilisation partials de la manière statique:Puis-je passer des variables php en incluant un partiel?

{% partial "location" city="Vancouver" country="Canada" %} 

Mon problème est que je dois utiliser des variables php ou js. Disons que j'ai un champ de saisie où l'utilisateur écrit un identifiant, puis après avoir appuyé sur un bouton, je veux passer l'identifiant à un partiel. J'essaie de faire quelque chose comme ceci:

{% partial "location" city=$city country=$country %} 

Quelqu'un peut-il m'aider? Je vous remercie.

Répondre

0

Avez-vous essayé cette méthode comme documenté ici? https://octobercms.com/docs/cms/partials#partial-variables

{% partial "location" city=city country=country %} 

EDIT

En aparté, vous devez définir vos variables de page dans la fonction onStart.

url = "/blah" 
layout = "default" 
== 
<? 
function onStart() 
{ 
    $this['country'] = ...; 
    $this['city'] = ...; 
} 
?> 
== 
{% partial "location" city=city country=country %} 

EDIT

Avez-vous lu la section sur AJAX? https://octobercms.com/docs/ajax/introduction

Plus précisément - https://octobercms.com/docs/ajax/update-partials#pushing-updates ET https://octobercms.com/docs/ajax/update-partials#update-definition

EDIT

Il suffit de relire votre question initiale et vous vous posez sur la liaison pour former des éléments, non AJAX.

Jetez un oeil à l'API JS - https://octobercms.com/docs/ajax/javascript-api#javascript-api

Je pense que vous pourriez faire quelque chose comme:

<form onsubmit="$(this).request('onMyProcessingMethod'); return false;">

$('form').request('onMyProcessingMethod', { 
    update: {myPartialName: '.whereIWantTheOutputToGo'}, 
    data: {country: 'Canada'} // Not 100% sure how to access form input; maybe ID selector 
}) 
+0

Oui, mais le pays doit être une variable twig dans ce cas et je Je ne sais pas comment les utiliser, j'ai essayé mais sans résultats. –

+0

Selon le blub au bas de cette page ("Access logic" - https://octobercms.com/docs/markup/templating), Twig devrait pouvoir accéder aux variables PHP; sans le signe du dollar bien sûr. – waterloomatt

+0

Juste avant d'appeler votre partiel, essayez de sortir une variable et de voir si elle s'affiche - {{country}} – waterloomatt

0

Vous pouvez utiliser des variables dans la partie de cette façon:

<p>Country: {{ country }}, city: {{ city }}.</p> 
+0

Oui, mais l'OP doit passer les variables à la partielle avant de pouvoir y accéder. – waterloomatt

+0

Il existe une fonction dédiée onStart() qui nous aide à définir les variables avant que le script puisse y accéder. –