Search code examples
javascriptphptwigpartialsoctobercms

Can i pass php variables when including a partial?


I am new to OctoberCMS so I don't know a lot of things. I read the October documentation and i know how to pass variables when using partials in the static way:

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

My problem is that I need to use php or js variables. Let's say I have an input field where the user writes an ID, then after a button is pressed I want to pass the ID to a partial. I am trying to do something like this :

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

Can someone help me? Thank you.


Solution

  • Have you tried this method as documented here? https://octobercms.com/docs/cms/partials#partial-variables

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

    EDIT

    As an aside, you need to define your page variables in the onStart function.

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

    EDIT

    Have you read the section on AJAX? https://octobercms.com/docs/ajax/introduction

    More specifically - https://octobercms.com/docs/ajax/update-partials#pushing-updates AND https://octobercms.com/docs/ajax/update-partials#update-definition

    EDIT

    Just re-read your original question and you're asking about binding to form elements, not AJAX.

    Take a look at the JS API - https://octobercms.com/docs/ajax/javascript-api#javascript-api

    I think you could do something like:

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