質問 > フロント機能 > フロントページの商品検索条件に追加したカスタム検索条件も維持したい(HIDDENフォームで配列受け取り) |
フロント機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
mipon |
投稿日時: 2017/9/11 22:26
対応状況: −−−
|
新米 登録日: 2017/9/9 居住地: 投稿: 9 |
フロントページの商品検索条件に追加したカスタム検索条件も維持したい(HIDDENフォームで配列受け取り) フロントページの、商品検索条件に追加したカスタム検索条件も一緒に維持したい(HIDDENフォームで配列受け取り)
【ECCUBE3.0.14】 ※ECCUBE自体もプラグインもSymfonyも、当方初めての使用です。 フロントページで商品検索する際に、 ①デフォルトの「カテゴリ」「テキスト」に加えて、 カスタマイズした項目「term_a」「term_b」でも絞込検索できるようにしました。 ②次の「検索条件を維持」のステップではまっています。 (例えば表示件数や並び順を変更するなどして、再度検索ボタンを押した際、条件がデフォルトに戻らないように維持したい) 検索条件を維持するHIDDENフォームで、 セレクトボックス(他、ラジオボタン・テキスト)は成功するのですが、 解決できないのは、チェックボックスのmultiple複数条件の場合で、検索で送られた配列データをHIDDENフォームで受け取れません。 【具体例】 ①デフォルトの「カテゴリ」「テキスト」に加えて、カスタマイズ検索条件「term_a」「term_b」でも、商品を絞込検索 <Typeの追加部分> src\Eccube\Form\Type\SearchProductBlockType.php に下記を追加 (実際にはプラグイン側でフックポイントでイベントにて下記を追加) // セレクトボックス $builder->add('plg_term_a', 'entity', array( 'class' => 'Plugin\プラグイン名\Entity\Term', 'property' => 'NameWithLevel', 'label' => 'テーマA', 'required' => false, 'placeholder' => '選択なし', 'multiple' => false, 'expanded' => false, 'mapped' => true, 'choices' => $TermListA, )); // チェックボックス $builder->add('plg_term_b', 'entity', array( 'class' => 'Plugin\ProductTagPlusSearch\Entity\Tagplus', 'property' => 'NameWithLevel', 'label' => 'テーマB', 'required' => false, 'placeholder' => '選択なし', 'multiple' => true, 'expanded' => true, 'mapped' => true, 'choices' => $TermListB, )); ~~~ここまでは成功~~~ ②検索条件を維持 カスタマイズ検索条件「term_a」「term_b」の選択状態を維持したく、 <Typeの追加部分> \src\Eccube\Form\Type\SearchProductType.php に下記を追加 (実際にはプラグイン側で、「FRONT_PRODUCT_INDEX_SEARCH」フックポイントでイベントにて追加) // セレクトボックス $builder->add('plg_term_a', 'entity', array( 'class' => 'Plugin\プラグイン名\Entity\Term', 'property' => 'NameWithLevel', 'label' => 'テーマA', 'required' => false, 'placeholder' => '選択なし', 'empty_value' => null, 'empty_data' => null, 'multiple' => false, 'expanded' => false, 'mapped' => true, 'choices' => $TermListA, )); // チェックボックス $builder->add('plg_term_b', 'entity', array( 'class' => 'Plugin\ProductTagPlusSearch\Entity\Tagplus', 'property' => 'NameWithLevel', 'label' => 'テーマB', 'required' => false, 'placeholder' => '選択なし', 'empty_value' => null, 'empty_data' => null, 'multiple' => true, 'expanded' => true, 'mapped' => true, 'choices' => $TermListB, )); ~~~ ここで検索時に問題発生(エラーは出ない)~~~ <<チェックボックスの場合、value値を受け取れない>> HIDDENフォーム <form name="form1" id="form1" method="get" action="?"> ~省略~ <input type="hidden" value="32" id="plg_term_a" name="plg_term_a"> ← セレクトボックスは成功! <input type="hidden" value="Doctrine\Common\Collections\ArrayCollection@000000007df5db3b000000001cdd9719" id="plg_term_b" name="plg_term_b"> ↑ チェックボックス受け取れない! name="plg_term_b"も配列仕様にならない... </form> このように、 セレクトボックスの場合は値を受け取れているのですが、 チェックボックスで配列の場合は受け取れません。 検索時のURLのGETパラメータは以下のような感じです。 /products/list?plg_term_a=2&plg_term_b[]=5&plg_term_b[]=6&mode=&name=&category_id=7&pageno=1&disp_number=30&orderby= HIDDENフォームで配列を受け取る方法を調べたのですが、なかなかHITせず。。。 数日悩んでおります。 どうぞよろしくお願いします<(_ _)> |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» フロントページの商品検索条件に追加したカスタム検索条件も維持したい(HIDDENフォームで配列受け取り) | mipon | 2017/9/11 22:26 |
Re: フロントページの商品検索条件に追加したカスタム検索条件も維持したい(HIDDENフォームで配列受け取り) | 468 | 2017/9/12 15:08 |
Re: フロントページの商品検索条件に追加したカスタム検索条件も維持したい(HIDDENフォームで配列受け取り) | mipon | 2017/9/12 16:10 |
Re: フロントページの商品検索条件に追加したカスタム検索条件も維持したい(HIDDENフォームで配列受け取り) | mipon | 2017/9/14 11:41 |
Re: フロントページの商品検索条件に追加したカスタム検索条件も維持したい(HIDDENフォームで配列受け取り) | mipon | 2017/9/14 11:43 |
Re: フロントページの商品検索条件に追加したカスタム検索条件も維持したい(HIDDENフォームで配列受け取り) | 468 | 2017/9/14 17:50 |