バージョン選択

フォーラム

メニュー

オンライン状況

75 人のユーザが現在オンラインです。 (57 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 74
dahag6611 もっと...

サイト内検索

質問 > 管理機能 > 【EC-CUBE2.13.5】商品マスター検索結果表示画面から商品の情報を編集したい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
pwang
投稿日時: 2016/3/10 12:13
対応状況: −−−
新米
登録日: 2016/3/9
居住地:
投稿: 3
【EC-CUBE2.13.5】商品マスター検索結果表示画面から商品の情報を編集したい
はじめまして。ec-cubeの利用を考えておりローカル環境でカスタマイズを色々と進めている状況です。
表題の件について方向性があっているかどうか質問させていただきたく、投稿させていただきました。
ec-cubeのバージョンは2.13.5を利用しています。

現在dtb_productsにcomment8という新規項目のカラムを追加し、商品マスター検索結果画面にも表示されるよう項目欄を追加しています。
個別の商品編集ページへ移動し、変更、登録をすれば変更されるようにしているのですが、編集頻度が高いので検索結果画面から直接編集できれば便利なのになぁ、と思った次第です。
検索結果表示画面にて個々の商品に対して、編集用のテキストエリアやボタンを持たせるイメージはつくのですが、変更ボタンがおされた際の処理等等がぴんと来ておらず。。

方向性としては
LC_Page_Admin_Products内のswitch ($this->getMode())以下に
case 'hoge':
として
$objQuery = SC_Query_Ex::getSingletonInstance();
を呼び出して
foreach($_POST["hoge"]~~
に対してUPDATE文でdtbの内容を更新する
ボタンのonclickにeccube.setModeAndSubmitを持たせて必要なパラメーターを渡す
というようなイメージで良いのでしょうか?

助言いただければ幸いです。よろしくおねがいします。
tsuji
投稿日時: 2016/3/10 16:50
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: 【EC-CUBE2.13.5】商品マスター検索結果表示画面から商品の情報を編集したい
pwang 様


商品一覧での更新ですが、どの商品なのかを特定するためにproduct_idと
更新内容をPOST値として渡す必要がありますので、eccube.setModeAndSubmit
にモード以外のパラメータを指定して更新するにはパラメータが足らない
という状態になります。

それで、hiddenでproduct_idを持たせて変更ボタン押下で
全て更新する形がよいと思います。



その際に、注意する点としてproduct_idやcomment8は配列の形でPOSTすることに
なると思いますが、各行で行番号を指定してPOSTするようにしたらよいと思います。


<input type="hidden" name="product_id[]" value="××" />

↑のように作成するのではなく↓のようにしたらよいと思います。

<input type="hidden" name="product_id[○○]" value="××" />

○○は行番号


以上、参考になれば幸いです。


----------------
****************************************
株式会社システムフレンド
辻 拓也(takuya tsuji)
改造専門店・EC-CUBE工房
****************************************

pwang
投稿日時: 2016/3/11 10:58
対応状況: −−−
新米
登録日: 2016/3/9
居住地:
投稿: 3
Re: 【EC-CUBE2.13.5】商品マスター検索結果表示画面から商品の情報を編集したい
tsujii様
御社Webサイト参考にさせていただいております。

引用:
それで、hiddenでproduct_idを持たせて変更ボタン押下で
全て更新する形がよいと思います。

その際に、注意する点としてproduct_idやcomment8は配列の形でPOSTすることに
なると思いますが、各行で行番号を指定してPOSTするようにしたらよいと思います。


なるほど!
早速試してみます。

試すのと並行しての質問で恐縮ですが、
認識がずれていないかの確認で質問させてください。

<form name="comment_form" id="comment_form" method="post" action="?">
    <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
    <input type="hidden" name="mode" value="hoge">
    <input type="hidden" name="product_id[<!--{$arrProducts[cnt].product_id}-->]" value="<!--{$arrProducts[cnt].product_id}-->">
    <input type="text" name="comment8[<!--{$arrProducts[cnt].product_id}-->]" value="<!--{$arrProducts[cnt].comment8}-->">
    <input type="submit" name="submit" value="変更">
</form>


のような形で渡して、switch ($this->getMode()) {}内case="hoge"以下で商品情報を全て更新するというような認識であってますでしょうか?

追記:お見せするのが恥ずかしいくらい凡ミス満載のコードでした。。既に存在しているform #search_formのことを全く考えていませんでした。post処理自体はjavascriptで行うべきだし、name="product_id[~~]"はnameを変えるべきですよね。。
pwang
投稿日時: 2016/4/11 11:38
対応状況: −−−
新米
登録日: 2016/3/9
居住地:
投稿: 3
Re: 【EC-CUBE2.13.5】商品マスター検索結果表示画面から商品の情報を編集したい
解決しました。

hiddenで
 <input type="hidden" name="comment8[<!--{$arrProducts[cnt].product_id}-->]" value="" />

を持たせて

onclick="eccube.setModeAndSubmit('commentup', '', ''); return false;


case 'commentup':
    $objQuery = SC_Query_Ex::getSingletonInstance();
    $upquery = "UPDATE  dtb_products SET comment8 = ? WHERE product_id = ? LIMIT 1";

    foreach($this->arrForm["comment8"]["value"] as $comment_id => $comment){
        $objQuery->query($upquery,array($comment,$comment_id));
    }


としました。
ご協力ありがとうございました!
なにかご指摘等ございましたらよろしくおねがいします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,024名です
総投稿数は110,020件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.