単純なボタン$builder->add('language_switcher', ButtonType::class);
のフォームがあります。これは、単に押すと別のフィールドを追加するだけです。今私はButtons do not support event listeners.
は、だから私は隠しフィールドでそれを試してみたエラーを取得していますAJAXボタンを押した後で動的フォームフィールドを追加する
<script>
var $button = $('#xyz');
$button.click(function() {
var $form = $(this).closest('form');
$.ajax({
url: $form.attr('action'),
type: $form.attr('method'),
success: function(html) {
console.log(html);
$('#xyz').replaceWith($(html).find('#lang_switcher'));
}
});
});
</script>
それを提出する際にそれをするために、私はsymfonyの料理http://symfony.com/doc/current/form/dynamic_form_modification.html
$builder
->get('language_switcher')
->addEventListener(
FormEvents::POST_SUBMIT,
function() use ($builder, $options) {
$preparedOptions = $this->prepareOptions($options['data']['productCustomizations']);
$builder->add('lang_switcher'), ChoiceType::class, $preparedOptions);
}
);
を使用しました。私は、フォームに隠しフィールドを追加し、それにEventListener
を設定し、しかし、これは何もしなかった私のAJAX
要求
data[$('#id_of_hidden_field').attr('name')] = 1;
にこのdata
を追加しました。コックブックの例は選択肢フィールドを提出した後で、私のニーズにどのように適応させるかわかりません。私はSubmitType
を使用できませんでした。なぜなら、それはフォームを提出するのでしょうか?私はちょうど簡単なボタンでそれを持っていたい。
問題は、私はconsole.log(html)
私は新しいhtml要素が表示されないので、私は奇妙なEventListener
には到着していないようだので、いくつかのデータを取得しています。私はそれを応答の中に入れていないようです。
のように構築されています代わりに(親)フォーム?実際にはイベントが発生します。 – Rvanlaak