質問 > フロント機能 > 商品をカートに入れた際、規格が選ばれていないときのエラー表示 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
rabupon |
投稿日時: 2017/4/25 11:33
対応状況: −−−
|
常連 登録日: 2008/11/14 居住地: 投稿: 67 |
商品をカートに入れた際、規格が選ばれていないときのエラー表示 商品に規格設定してあり、
商品をカートに入れた際、規格が選択されていないときに 「入力されていません」とエラー表示されるのですが、 規格名が「サイズ」だった場合に 「サイズが入力されていません」もしくは「サイズが選択されていません」と表示したいのですが、可能でしょうか? |
umebius |
投稿日時: 2017/4/25 11:47
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 商品をカートに入れた際、規格が選ばれていないときのエラー表示 できますよ。AddCartType.phpのvalidateメソッドの一部を下記に修正してください。
|
umebius |
投稿日時: 2017/4/25 11:47
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 商品をカートに入れた際、規格が選ばれていないときのエラー表示 ちなみにバージョンによってコードが違うかもしれませんので読み替えてください。
|
h_tanaka |
投稿日時: 2017/4/25 11:49
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1646 |
Re: 商品をカートに入れた際、規格が選ばれていないときのエラー表示 src/Eccube/Form/Type/AddCartType.php
のバリデータのパラメータ message の値を変更してやればできます。 規格名を取得して、
|
rabupon |
投稿日時: 2017/4/25 16:40
対応状況: 解決済
|
常連 登録日: 2008/11/14 居住地: 投稿: 67 |
Re: 商品をカートに入れた際、規格が選ばれていないときのエラー表示 ありがとうございます。
希望通りできました |
rabupon |
投稿日時: 2017/4/25 16:41
対応状況: 解決済
|
常連 登録日: 2008/11/14 居住地: 投稿: 67 |
Re: 商品をカートに入れた際、規格が選ばれていないときのエラー表示 ありがとうございます。
参考になりました |
rabupon |
投稿日時: 2017/5/10 17:49
対応状況: −−−
|
常連 登録日: 2008/11/14 居住地: 投稿: 67 |
Re: 商品をカートに入れた際、規格が選ばれていないときのエラー表示 時間がたってからすみません。
規格が2つある場合も同様に下記のように変更いたしました。 public function validate($data, ExecutionContext $context) { if ($data['mode'] !== 'add_favorite') { $context->validateValue($data['product_class_id'], array( new Assert\NotBlank(), ), '[product_class_id]'); if ($this->Product->getClassName1()) { $context->validateValue($data['classcategory_id1'], array( new Assert\NotBlank(), new Assert\NotEqualTo(array( 'value' => '__unselected', 'message' => $this->Product->getClassName1().'を選択してください' // ※ここ一行だけ変更してます 'message' => 'form.type.select.notselect' )), ), '[classcategory_id1]'); } //商品規格2初期状態(未選択)の場合の返却値は「NULL」で「__unselected」ではない if ($this->Product->getClassName2()) { $context->validateValue($data['classcategory_id2'], array( new Assert\NotBlank(), new Assert\NotEqualTo(array( 'value' => '__unselected', 'message' => $this->Product->getClassName2().'を選択してください' // ※ここ一行だけ変更してます 'message' => 'form.type.select.notselect' )), ), '[classcategory_id2]'); } } } しかし、1つ目がカラー、2つ目がサイズなのですが、 カラーの方は「カラーを選択してください」に変更されましたが、 サイズの方は「入力されていません」で変更されません。 修正の仕方が違うのでしょうか? |
468 |
投稿日時: 2017/5/11 3:36
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 商品をカートに入れた際、規格が選ばれていないときのエラー表示 私もそこのメッセージで困った事があるのですが、
規格2のプルダウンの「選択してください」が <option value="">選択してください</option> になっていて、 「__unselected」が送信されていない事が原因になります。 サイズの「入力されていません」のメッセージはnew Assert\NotBlank()のエラーメッセージが表示されています。 //商品規格2初期状態(未選択)の場合の返却値は「NULL」で「__unselected」ではない ↑上記のコメントはこの事象を指しているのだと思います。 私は、/html/template/default/js/eccube.js 441行目の記述を var option = $('<option />').val(id ? id : '').text(name); ↓ var option = $('<option />').val(id ? id : '__unselected').text(name); に変更して、未選択時に「__unselected」が送信されるように修正しました。 上記の変更で、規格2のプルダウンの「選択してください」が <option value="__unselected">選択してください</option> で出力されるようになると思います。
|
rabupon |
投稿日時: 2017/5/11 9:06
対応状況: 解決済
|
常連 登録日: 2008/11/14 居住地: 投稿: 67 |
Re: 商品をカートに入れた際、規格が選ばれていないときのエラー表示 ありがとうございます。
教えていただいたように修正したら、 規格2でも思うようなエラーになりました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |