0

以前は Javascript を使用したことがありませんでしたが、今では Symfony プロジェクト (Symfony 1.4) で Javascript が必要になり、コードを追加して機能させる場所についていくつかの問題があります。

モジュール「aktionLimit」にテンプレート (indexSuccess) があり、クラス「Aktion」のオブジェクトの変数の値を表示します。

<p>Value1: <?php echo $aktion->getValue1()  ?></p>
<p>Value2: <?php echo $aktion->getValue2()  ?></p>
<p>Value3: <?php echo $aktion->getValue3()  ?></p>

<?php include_partial('form', array('form' => $form)) ?>

これは executeIndex です。

$this->aktion = AktionlimitPeer::getByName($this->getUser()->getAttribute('aktion'));

$aktionParam = new Aktion();
$aktionParam->setName($this->aktion->getName());

$this->form = new AktionlimitForm(array(), array("aktion" => $aktionParam));

AktionLimitForm は次のようになります。

$aktionForm = new AktionForm($this->getOption('aktion'), array("limit" => true));

$this->embedForm('Aktion', $aktionForm);  

$this->widgetSchema['neuerWert']= new sfWidgetFormInputText();

埋め込まれた AktionForm には、要素が 1 つだけあります (「Aktion」のオブジェクトの一意の名前を含むドロップダウン ボックス)。

$this->widgetSchema['name'] = new sfWidgetFormChoice(array('choices' =>   AktionPeer::getTypes()),array('onchange' => '???'));

ユーザーがドロップダウン ボックスで別の「アクション」を選択するたびに、現在のオブジェクト「アクション」(名前で参照) を executeIndex にロードし、その値 (値 1-3) を indexSuccess に表示します。別のアクション。)

onChange-Event で executeIndex を呼び出す関数が必要です。おそらく web/js-folder で関数を宣言する必要がありますが、これでよろしいですか? しかし、フォームから関数を呼び出すにはどうすればよいでしょうか? また、JavaScript 関数でアクションを呼び出すにはどうすればよいですか?

私が書いたことを理解していただければ幸いです。今日、この問題を英語で説明するのは難しいです :) 誰か助けてくれませんか?

4

1 に答える 1

6

まず、symfony 2 へのアップグレードを検討してください。

次に、jquery (素敵な JavaScript フレームワーク) を使用する場合は、フォーム タイプでこれを構成する必要はありません。jquery を使用すると、イベントを要素に非常に簡単にバインドできます。

$(document).ready( function() {
    $('#id_of_the_form_field').change(function() {
        // to get the selected value
        var selected = $(this).val()

        // do your magic pony stuff
    });
});

JavaScript から PHP アクションを呼び出すには、関連するルートに ajax リクエストを行う必要があります。

于 2013-05-03T09:41:50.123 に答える