バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 商品マスターページで備考を記入、保存ができるようにしたい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
by0448
投稿日時: 2013/9/2 16:44
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
商品マスターページで備考を記入、保存ができるようにしたい
お世話になります。

商品マスターページで『備考欄(SHOP専用)』を追加、記入できるようにしたいのですが、なぜか記入した部分の情報がひっぱ手来れず、手詰まりしてしまいました。

変更点は以下の通りです。

/data/class/pages/admin/products/LC_Page_Admin_Products.php

112行目付近に以下を追加

        case 'upnote':
            $this->doNote("product_id = ?", array($objFormParam->getValue('product_id')));
            $this->tpl_onload = "window.alert('編集が完了しました');";


210行目付近に以下を追加
        $objFormParam->addParam("備考欄(SHOP専用)", 'note', LLTEXT_LEN, 'KVa', array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));


277行目付近に以下を追加
    /**
     * ノートに情報登録
     */	
    function doNote($where, &$objFormParam) {
        $objQuery =& SC_Query_Ex::getSingletonInstance();
        $sqlval['note']     = $objFormParam->getValue('note');
        $sqlval['update_date'] = 'now()';
        $objQuery->update('dtb_products', $sqlval, $where, $arrParam);
    }




/data/Smarty/templates/admin/products/index.tpl

292行目付近に以下を追加
<textarea name="note" cols="50" rows="7" maxlength="99999" style=""><!--{$arrProducts[cnt].note}--></textarea>
<a href="<!--{$smarty.const.ROOT_URLPATH}-->" onclick="fnModeSubmit('upnote', 'product_id', <!--{$arrProducts[cnt].product_id}-->); return false;">UP</a>




この修正で更新ボタンを押したところ、更新時間だけUPDATEされ、肝心のnoteの中身が引っ張れていません。

見よう見まねでやったもので、どのように修正すればいいのか、見当がつきません。


どなたかご教授お願いいたします。


__環境_________________________

EC-CUBE 2.11.2
MySQL 5.1.34-log
PHP 5.2.17
_______________________________
sumida
投稿日時: 2013/9/2 20:27
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: 商品マスターページで備考を記入、保存ができるようにしたい
$objQuery->update('dtb_products', $sqlval, $where, $arrParam);
の$arrParamに値が無いのではないですか?

doNoteの呼び出し側と関数側で、引数の内容が一致していません。
by0448
投稿日時: 2013/9/3 11:25
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
Re: 商品マスターページで備考を記入、保存ができるようにしたい
sumida 様

ご返答ありがとうございます。

ご指摘してくださった点を修正しますと、以下のようなものでよろしいのでしょうか。


    /**
     * ノートに情報登録
     */	
    function doNote($where, $arrParam = array()) {
        $objQuery =& SC_Query_Ex::getSingletonInstance();
        $sqlval['note']     = $objFormParam->getValue('note');
        $sqlval['update_date'] = 'now()';
        $objQuery->update('dtb_products', $sqlval, $where, $arrParam);
    }




ただ、これでも上手くいかないようでして、どのような修正を行えばいいのか、お教え願えないでしょうか。

よろしくお願いいたします。
yuh
投稿日時: 2013/9/3 17:20
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 商品マスターページで備考を記入、保存ができるようにしたい

$this->doNote("product_id = ?", $objFormParam);


//------------------------------------------------

    function doNote($where, $objFormParam) {
        $objQuery =& SC_Query_Ex::getSingletonInstance();
        $sqlval['note']     = $objFormParam->getValue('note');
        $sqlval['update_date'] = 'now()';
	$arrParam = array($objFormParam->getValue('product_id'));
        $objQuery->update('dtb_products', $sqlval, $where, $arrParam);
    }



$objFormParamが渡されてないので、noteに$objFormParamから値がわたってません。
テストしてないですが、上記のコードで試してみてください。
by0448
投稿日時: 2013/9/3 17:46
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
Re: 商品マスターページで備考を記入、保存ができるようにしたい
yuh 様

ご返答ありがとうございます。

頂いたコードを元に、以下のように変更しました。


118行目付近

        case 'upnote':
	  $this->doNote("product_id = ?", $objFormParam);
          $this->tpl_onload = "window.alert('編集が完了しました');";
	break;

284行目付近
    /**
     * ノートに情報登録
     */	
	function doNote($where, $objFormParam) {
        $objQuery =& SC_Query_Ex::getSingletonInstance();
        $sqlval['note']     = $objFormParam->getValue('note');
        $sqlval['update_date'] = 'now()';
		$arrParam = array($objFormParam->getValue('product_id'));
        $objQuery->update('dtb_products', $sqlval, $where, $arrParam);
    }





しかし、update_dateは更新されるものの、noteの方は情報が通っておらぬようです。

もしかしたら、以下のtplの方のコードが間違っているのでしょうか。

<textarea name="note" cols="18" rows="7" maxlength="99999" style=""><!--{$arrProducts[cnt].note}--></textarea>
					<p class="buttun"><a href="<!--{$smarty.const.ROOT_URLPATH}-->" onclick="fnModeSubmit('upnote', 'product_id', <!--{$arrProducts[cnt].product_id}-->); return false;"><input type="submit" value=" 保存 "></a></p>


引き続き、ご教授いただけますと幸いです。
よろしくお願いいたします。



by0448
投稿日時: 2013/9/4 18:10
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
Re: 商品マスターページで備考を記入、保存ができるようにしたい
お世話になります。

試行錯誤してもまったくわからず、ある一点のみが問題なのに、どうにも解決に至りません。


function doNote($where, $objFormParam) {
        $objQuery =& SC_Query_Ex::getSingletonInstance();
        $sqlval['note']     = $objFormParam->getValue('note');
        $sqlval['update_date'] = 'now()';
		$arrParam = array($objFormParam->getValue('product_id'));
        $objQuery->update('dtb_products', $sqlval, $where, $arrParam);
    }


問題がこの一点にあることがわかっております

        $sqlval['note']     = $objFormParam->getValue('note');
   上の一行を以下のように変更↓
        $sqlval['note']     = 'test';



このようにした場合、データベースには『test』はUPされております。
ということは
$objFormParam->getValue('note');


の部分に情報が渡っていないという事になります。

これはどこかの記述が足らないのか、それともこの箇所の記述が違うのか、見当がつきません。
何度も質問をして申し訳ありませんが、どなたかご教授をよろしくお願いいたします。


sumida
投稿日時: 2013/9/4 18:50
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: 商品マスターページで備考を記入、保存ができるようにしたい
LC_Page_Admin_Products.php

    function findProducts($where, $arrValues, $limit, $offset, $order, &$objProduct) {
        $objQuery =& SC_Query_Ex::getSingletonInstance();

        // 読み込む列とテーブルの指定
        $col = 'product_id, name, main_list_image, status, product_code_min, product_code_max, price02_min, price02_max, stock_min, stock_max, stock_unlimited_min, stock_unlimited_max, update_date';
        $from = $objProduct->alldtlSQL();

        $objQuery->setLimitOffset($limit, $offset);
        $objQuery->setOrder($order);

        return $objQuery->select($col, $from, $where, $arrValues);
    }

$col に'note'を加えなければ、DBから持って来ない。のかな?
でも、登録できているから、これは、はずしてるのかな。
nanasess
投稿日時: 2013/9/4 19:21
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2313
Re: 商品マスターページで備考を記入、保存ができるようにしたい
登録確認画面で hidden に渡ってないとか??
by0448
投稿日時: 2013/9/4 19:36
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
Re: 商品マスターページで備考を記入、保存ができるようにしたい
sumida 様

ご返答ありがとうございます。
ご提示いただいた部分ですが、以下のように記述しております。


    function findProducts($where, $arrValues, $limit, $offset, $order, &$objProduct) {
        $objQuery =& SC_Query_Ex::getSingletonInstance();

        // 読み込む列とテーブルの指定
        $col = "product_id, name,  main_image, deliv_date_id, note, status, product_code_min, product_code_max, price02_min, price02_max, stock_min, stock_max, stock_unlimited_min, stock_unlimited_max, update_date";
        $from = $objProduct->alldtlSQL('del_flg = 0');
		
        $objQuery->setLimitOffset($limit, $offset);
        $objQuery->setOrder($order);

        return $objQuery->select($col, $from, $where, $arrValues);
    }



$col の方にはnoteは引っ張っていますので、直接DBに入力したものは表示できております。



nanasess 様

ご返答ありがとうございます。


>>登録確認画面で hidden に渡ってないとか??


商品マスターページからの登録を希望しておりまして、確認画面は介さないようにしているつもりです。
ですので、その介さない方法のせいで、情報が渡ってないのかもしれません。


よろしければ、ご教授いただけましたら幸いです。

bratech
投稿日時: 2013/9/4 19:48
対応状況: −−−
長老
登録日: 2008/11/28
居住地: 福岡
投稿: 223
Re: 商品マスターページで備考を記入、保存ができるようにしたい
引用:


292行目付近に以下を追加
<textarea name="note" cols="50" rows="7" maxlength="99999" style=""><!--{$arrProducts[cnt].note}--></textarea>
<a href="<!--{$smarty.const.ROOT_URLPATH}-->" onclick="fnModeSubmit('upnote', 'product_id', <!--{$arrProducts[cnt].product_id}-->); return false;">UP</a>



テンプレートにこのように記述されているようですが
この記述ですと、name属性が"note"となるテキストエリアがページ内に表示された商品数分生成される事になります。

この状態ですと、$_POST['note']に入る値は
おそらく一番最後の商品のテキストエリアの値になってしまいます。
ですので変更をかけたい商品のテキストエリアに記述した内容は反映されません。

すべてのテキストエリアを個別に扱うような方法に変更されれば解決出来るのではないでしょうか。

ご参考まで。


----------------
★売れる通販サイト作ります! ========================
(株)ブラテック EC-CUBEカスタマイズサービス
http://www.bratech.co.jp/lpo/eccube.html
==============================================

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,864名です
総投稿数は109,996件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1294
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.