簡體   English   中英

php形式:來自javascript或textarea html的twig參數

[英]php form : twig parameter from javascript or textarea html

我有一個由id定義的textarea

<textarea id='vegetable'> Tomato </textarea>

我有一個按鈕

<button type="button" onclick="MyFunction()">generate vegetable</button>

觸發一個javascript以修改textarea的內容

<script>
function MyFunction()
{
    document.getElementById("vegetable").innerHTML = VegetableNameGenerator();
}
</script>

問題是這個php動作:

<form action="{{ path('mypath', { 'myparam': ??? }) }}" method="post" > 
    <input type="submit" />
</form>

??? 必須是textarea的內容(javascript代碼也知道),但是我不知道如何在樹枝中訪問它。 我猜有幾種方法可以做到:jquery,dom,全局變量twig ...任何語法示例都很棒。

用您描述的方式是不可能的。

當向服務器發出請求時,twig呈現頁面,然后將其發送到瀏覽器,然后可以運行javascript。

有一些方法可以使這項工作:

  1. 創建一個控制器動作,當您使用帶有提供的參數的GET請求調用它時,該動作將返回渲染的路徑。 然后,在“提交”按鈕上創建一個事件偵聽器,該事件偵聽器將阻止提交過程,直到它通過AJAX檢索了路由並修改了表單的action屬性。

  2. 從控制器重定向到要顯示的路徑。 myparam將包含在發布數據中,因此您可以在處理表單后從控制器操作中重定向。

     $this->redirect($this->get('router') ->generate('mypath', array('myparam'=> $this->getRequest()->get('myparam') ), true); 

感謝您的答復。 我不知道它是否適合您的建議,但是我發現此鏈接提供了詳細的示例,並允許我做我需要做的事情:

從jQuery調用Symfony2控制器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM