質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Symfony

Symfony はPHPで記述されたWebアプリケーションフレームワークです。よく利用するコーディングをテンプレーティングするなど、Webアプリケーション開発の効率化を目的として設計されています。

Twig

Twig は、簡潔で可読性の高いテンプレートを記述することができ、 シンプルに記述することを目的として作られた PHPテンプレートエンジンです。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

Q&A

解決済

2回答

715閲覧

Eccube 3x 商品検索のときカテゴリを切り替えたら自動的に検索させる

rev_timo

総合スコア117

Symfony

Symfony はPHPで記述されたWebアプリケーションフレームワークです。よく利用するコーディングをテンプレーティングするなど、Webアプリケーション開発の効率化を目的として設計されています。

Twig

Twig は、簡潔で可読性の高いテンプレートを記述することができ、 シンプルに記述することを目的として作られた PHPテンプレートエンジンです。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

0グッド

0クリップ

投稿2018/03/28 00:11

簡単に言いますと、twigに以下のようなことをやりたいのです

<select onchange="this.form.submit()"> ... </select>

Eccube のフロントのほうに、カテゴリとキーワードで検索できるfromがありますが、カテゴリのselect dropdown listが変わったらformをsubmitしたいです。

Block/search_product.twigのソースをみたらこれ```{{ form_widget(form.category_id) }}

そこのselect ボックスをどうすればonchange > form submit みたいにできますか。 よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

select ボックスをどうすればonchange > form submit みたいにできますか。

デモとGithubソースコードを見ながらの回答なので未検証ですが、Block/search_product.twigの一番上あたりに以下を追加するのが一番簡単な方法だと思います。

<script> $(function() { $('#category_id').on('change', function() { // submit }); }); </script>

あとはformをsubmitするだけです。
submitまで書くと丸投げの質問かつEccube, Symfony, Twigとは関係ないJSの世界の話なので、これぐらいはご自身で書いてください。
ご自身でやってみてどうしてもできないのであれば、jQuery等のタグをつけて別途質問を立ててください。
Block/search_product.twig内のSymfonyFormコンポーネントのchangeイベントが拾えるまではサポートいたします。

投稿2018/03/28 02:46

xenbeat

総合スコア4258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rev_timo

2018/03/29 00:10

maverixzさんサポートありがとうございます。 結局目的はproducts/listにアクセスするだけで大丈夫ですので、あまりよくないかもしれませんが、formをsubmitするのをやめまして、onchangeのときこのようにしました```window.location="{{ path('product_list') }}?category_id="+categoryID;``` すみません、質問と内容とタグの付け方がいろいろ変わってしまいまして、 ありがとうございました。
guest

0

自己解決

もっと、いいやり方があるかもしれませんが、私の目的は/products/listへアクセスすればOKなので、このようにしました。

search_product.twig

{% block javascript %} <script> function searchbycategory(categoryID) { window.location="{{ path('product_list') }}?category_id="+categoryID; } </script> {% endblock %} 省略... {{ form_widget(form.category_id, {'id': '', 'attr': {'onchange': "javascript:searchbycategory(this.value);"}}) }} 省略...

投稿2018/03/29 00:14

rev_timo

総合スコア117

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問