質問 > フロント機能 > お客様情報の入力画面でラジオボタンの選択によって後続のフォームを活性・非活性化したい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
himuhara |
投稿日時: 2024/7/22 10:58
対応状況: 開発中
|
新米 登録日: 2024/2/16 居住地: 投稿: 3 |
お客様情報の入力画面でラジオボタンの選択によって後続のフォームを活性・非活性化したい [EC-CUBE]4.0.6
[レンタルサーバ]自社サーバー 始めて投稿させていただきます。 初心者に近い為的外れなご質問などあった場合はご指摘いただけますと幸いです。 現在非会員のお客様情報入力ページの項目追加等のカスタマイズを行っているのですが、その中で「受取方法」というラベルで「店頭受取」と「ヤマト配送」という形でラジオボタンで選択する項目を追加しており、ここまでは何とか実装できたのですが、この選択によってあとに続くフォームの入力可否を制御したいのです。 具体的には、「店頭受取」を選択すると「注文者住所」と「配送先住所」を非活性もしくは非表示にしたく、「ヤマト配送」を選ぶとそのまま入力可能なようにしたいと考えています。 NonMemberTypeExtension.phpで ->add('Recive',ChoiceType::class,[ 'required' => true, 'choices' => [ $tentou=trans('店頭受取') => 1, $yamato=trans('ヤマト配送') => 2, ], 'label' => false, 'expanded' => true,#ラジオボタンで表示させる為 'multiple' => false,#ラジオボタンで表示させる為 'attr'=>['id'=>'recive_choice'] ]) //支払状況追記部 ->add('Siharai',ChoiceType::class,[ 'required' => true, 'choices' => [ $zumi=trans('支払済み') => 1, $mibarai=trans('未払い') => 2, $daibiki=trans('配送代引き') => 3, ], 'label' => false, 'expanded' => true,#ラジオボタンで表示させる為 'multiple' => false,#ラジオボタンで表示させる為 'attr'=>['id'=>'siharai_choice'] ]) NonMemberExtention.php //受取方法追記部分 ->add('Recive',ChoiceType::class,[ 'required' => true, 'choices' => [ $tentou=trans('店頭受取') => 1, $yamato=trans('ヤマト配送') => 2, ], 'label' => false, 'expanded' => true,#ラジオボタンで表示させる為 'multiple' => false,#ラジオボタンで表示させる為 'attr'=>['id'=>'recive_choice'] ]) //支払状況追記部分 ->add('Siharai',ChoiceType::class,[ 'required' => true, 'choices' => [ $zumi=trans('支払済み') => 1, $mibarai=trans('未払い') => 2, $daibiki=trans('配送代引き') => 3, ], 'label' => false, 'expanded' => true,#ラジオボタンで表示させる為 'multiple' => false,#ラジオボタンで表示させる為 'attr'=>['id'=>'siharai_choice'] ]) if ($_SERVER['REQUEST_METHOD'] === 'POST') { $reciveChoice = $_POST['form']['Recive']; if ($reciveChoice == 1) { $_POST['form']['postal_code'] = ''; $_POST['form']['address'] = ''; } } 上記のように記述してみたのですが考え方・書き方としてはこれでいかがでしょうか? ご教示いただけますと幸いでございます。 どうぞよろしくお願いいたします。 |
mcontact |
投稿日時: 2024/7/22 17:48
対応状況: −−−
|
神 登録日: 2022/1/22 居住地: 投稿: 1445 |
Re: お客様情報の入力画面でラジオボタンの選択によって後続のフォームを活性・非活性化したい 本コミュニティは開発者の相互にサポートするのための開発コミュニティです。
コードレビューを行う場所ではありません。 開発に関して初心者ということでしたら、開発できるレベルまで勉強されるか、御社エンジニアまたはEC-CUBEインテグレートパートナーに相談されることをオススメ致します。 https://www.ec-cube.net/integrate/partner/ そして、ざっくり見る限りchoicesの配列を設定している書き方がおかしく、またSymfonyでは$_SERVERや$_POSTのグローバル変数を使用してフォームからの制御は通常行いません。
|
Meganezaru |
投稿日時: 2024/7/26 22:21
対応状況: −−−
|
新米 登録日: 2024/4/5 居住地: 投稿: 8 |
Re: お客様情報の入力画面でラジオボタンの選択によって後続のフォームを活性・非活性化したい ラジオボタンの切り替えでRequestを発生させるわけではないと思いますので、フロント側JavaScriptでの制御がよさそうですね。
Extensionには、入力対象のフィールドをすべて入れておいて、ラジオボタンのイベントで住所などのフィールドを非活性させるようなイメージが良いと思います。 対象ページのTwigなどに、JQueryなどを仕込むのが良いのではないでしょうか ソースを掲載する場合は、[CODE]~[/CODE](すべて半角で) で囲むとインデントが崩れなくて見やすいです。
|
himuhara |
投稿日時: 2024/8/6 8:50
対応状況: −−−
|
新米 登録日: 2024/2/16 居住地: 投稿: 3 |
Re: お客様情報の入力画面でラジオボタンの選択によって後続のフォームを活性・非活性化したい ご指摘とアドバイスをいただきありがとうございます。
シンフォニーの参考書を購入の上そのあたりの作法を理解して進めて参ります。 |
himuhara |
投稿日時: 2024/8/6 8:52
対応状況: −−−
|
新米 登録日: 2024/2/16 居住地: 投稿: 3 |
Re: お客様情報の入力画面でラジオボタンの選択によって後続のフォームを活性・非活性化したい Meganezaru 様
アドバイスいただいた通りjavascript制御にて実装することができました。 又、[CODE]囲みに関て今後徹底させていただきます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |