質問 > フロント機能 > Formのラジオボタンの選択状態を取得したい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
TAT |
投稿日時: 2018/8/25 12:34
対応状況: −−−
|
新米 登録日: 2018/8/18 居住地: 投稿: 5 |
Re: Formのラジオボタンの選択状態を取得したい tanakaさんRingoさん、ありがとうございます。
早速Ringoさんにご提示いただいたコードで試してみました。 引用: {{ dump(form.payment) }} を支払い方法セレクトの前に、 引用: {% for key, child in form.payment %} を<div class="priceBox4">の中に入れたところ、 やはりエラーでページが表示されなくなりましたのでデバッグモードで表示、以下のスクリーンショットの状態になりました。 dumpはおかげさまで動いているようで、以下のように選択中の支払い方法も拾っています。 ただ、デバッグモードでもボタンそのものが表示されない為、dumpした情報を拾えていない模様です。デバッグモードではない環境だと{{ dump(form.payment) }}を挿入した時点でページは表示されなくなりました。 2つ質問があるのですが、 1.{% if form.payment.vars.value == form.payment.vars.choices[key].value %}を何か任意の取得したい値に変えないといけないでしょうか? 2.{% for key, child in form.payment %}は 引用: <h2 class="heading02">お支払方法</h2> のラジオボタンセレクタ自体にも使われているのですが、dumpしたデータの取得(ボタンの表示の箇所)にも使えるという認識で正しいでしょうか? twigの働きをもっと勉強しないといけないのですが、あまりに初歩的な質問でしたら飛ばしていただいても構いません。 あと少しな感じがするのでなんとか動作するようにしたいと思っております。 お付き合いいただけますと助かります。 宜しくお願いいたします。 |
Ringo |
投稿日時: 2018/8/25 15:09
対応状況: −−−
|
常連 登録日: 2018/8/10 居住地: 投稿: 70 |
Re: Formのラジオボタンの選択状態を取得したい >やはりエラーでページが表示されなくなりましたのでデバッグモードで表示、以下のスクリーンショットの状態になりました。
{{ dump(form.payment) }} は「index_dev.php」を介さないと、
が発生する様です。 >2つ質問があるのですが、 >1.{% if form.payment.vars.value == form.payment.vars.choices[key].value %}を何か任意の取得したい値に変えないといけないでしょうか? → 訂正:’18.08.30、'18.08.31 3.0.11〜 は、 {% if form.payment.vars.value == form.payment.vars.choices[key].value %} ですが、 3.0.10は、 {% if form.payment.vars.value.id == form.payment.vars.choices[key].value %} の様です。 例えば「銀行振込」選んだ場合、 3.0.11〜は form.payment.vars.valueは↓ FormView {#7437 ▼ +vars: array:41 [▼ "value" => "3" form.payment.vars.choices[key].valueは↓ "choices" => array:2 [▼ 3 => ChoiceView {#2443 ▼ +attr: [] +label: "銀行振込" +value: "3" +data: Payment {#2121 ▶ …2} } 3.0.10は form.payment.vars.value.idは↓ FormView {#2362 ▼ +vars: array:41 [▼ "value" => Payment {#1957 ▼ +__isInitialized__: true -id: 3 form.payment.vars.choices[key].valueは↓ "choices" => array:4 [▼ 3 => ChoiceView {#2278 ▼ +attr: [] +label: "銀行振込" +value: "3" +data: Payment {#1957 ▶ …2} で「value」と「value」or「id」と「value」が一致した「label」を表示する、 form.payment.vars.choices[key].label です。 >2.{% for key, child in form.payment %}は >引用: >(略) > >のラジオボタンセレクタ自体にも使われているのですが、dumpしたデータの取得(ボタンの表示の箇所)にも使えるという認識で正しいでしょうか? 多分、ここの理解が不十分なのだと思います。 {% for key, child in form.payment %} での「key」の値は {% endfor %} で「消失」します。 ですから、
として、 <div class="priceBox4"> 内にて、再度、 {% for key, child in form.payment %} {% endfor %} としている訳です。 >ただ、デバッグモードでもボタンそのものが表示されない為、dumpした情報を拾えていない模様です。 訂正:3.0.10→3.0.11にて、一致条件が変更されていました。 こちらの手元で、ボタンが表示されている、該当コードを示しておきます。
|
TAT |
投稿日時: 2018/8/30 10:03
対応状況: −−−
|
新米 登録日: 2018/8/18 居住地: 投稿: 5 |
Re: Formのラジオボタンの選択状態を取得したい Ringo様
お返事が遅くなってしまいましたが、試行錯誤の末ようやく希望の挙動になりました! 私の環境では {% for key, child in form.payment %} {% if form.payment.vars.value == form.payment.vars.choices[key].value %} <p id="summary_box__confirm_button"><button id="order-button" type="submit" class="btn btn-primary btn-block prevention-btn prevention-mask">{{ form.payment.vars.choices[key].label }}で注文する</button></p> {% endif %} {% endfor %} の部分の {% if form.payment.vars.value == form.payment.vars.choices[key].value %} を {% if form.payment.vars.value == form.payment.vars.choices[key].label %} 変えて動作致しました! 本当に助かりました! ありがとうございます。また何かありましたら宜しくお願い致します。 |
Ringo |
投稿日時: 2018/8/30 19:42
対応状況: −−−
|
常連 登録日: 2018/8/10 居住地: 投稿: 70 |
Re: Formのラジオボタンの選択状態を取得したい >{% if form.payment.vars.value == form.payment.vars.choices[key].value %}
>を >{% if form.payment.vars.value == form.payment.vars.choices[key].label %} > >変えて動作致しました! 修正 '18.08.31 と言う事で、確認し 3.0.11〜 は、 {% if form.payment.vars.value == form.payment.vars.choices[key].value %} ですが、 3.0.10は、 ですね。 {% if form.payment.vars.value.id == form.payment.vars.choices[key].value %} の様です。 失礼しました。 |
« 1 (2) |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |