0

IDで定義されたテキストエリアがあります

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

ボタンがあります

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

textareaのコンテンツを変更するためにjavascriptをトリガーします

<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、グローバル変数の小枝...どんな構文例も素晴らしいでしょう。

4

1 に答える 1

0

あなたがそれを説明している方法では、これは不可能です。

サーバーにリクエストが送信されると、twigがページをレンダリングし、ブラウザに送信されてから、javascriptを実行できます。

これを機能させる方法には次のオプションがあります。

  1. 指定されたパラメーターを指定してGET要求を使用して呼び出すと、レンダリングされたパスを返すコントローラーアクションを作成します。次に、送信ボタンでイベントリスナーを作成し、AJAXを介してルートを取得し、フォームのアクション属性を変更するまで送信プロセスをブロックします。

  2. コントローラから表示したいパスにリダイレクトします。myparamは投稿データに含まれるため、フォームを処理した後、コントローラーアクションからリダイレクトできます。

    $this->redirect($this->get('router')
                 ->generate('mypath', 
                            array('myparam'=> 
                                  $this->getRequest()->get('myparam')
                                 ), 
                            true);
    
于 2013-03-19T21:37:05.977 に答える