質問 > 管理機能 > CSV出力後、ステータスを自動更新したいのですが。 |
管理機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
lvsa |
投稿日時: 2009/10/9 12:52
対応状況: −−−
|
一人前 登録日: 2009/10/6 居住地: 投稿: 104 |
Re: CSV出力後、ステータスを自動更新したいのですが。 seasoftさま
いつも誠にありがとうございます。 おかげさまで、思い通りの動作をするようにできました。 更新処理が実行されなかった原因ですが、 $this->lfUpdateStatus(); 上記の記述をしなければならないところを lfUpdateStatus();としてました。 これでは、functionを呼べないですね・・。 初歩的ミスでした。 何度もアドバイスをいただいたおかげでできました。 今後も何かありましたら、お力添えのほどよろしくお願いいたします。 本当にありがとうございました。 |
seasoft |
投稿日時: 2009/10/9 12:37
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: CSV出力後、ステータスを自動更新したいのですが。 > CSV出力した際は、別ウィンドウにて確認、保存先の決定をしていますが、
> そのような場合、処理がサーバ側に戻っていない・・ > なんてことはないですよね!? 保存のダイアログのことでしょうか? だとしたら、既にサーバ側の処理は終わっているケースが多いですよ。(アプリケーションに依存する部分なので、必ずではないです) 画面出力でデバッグがうまく進められない場合、ログ出力というのも常套手段ですよ。参考まで。
|
lvsa |
投稿日時: 2009/10/9 11:28
対応状況: −−−
|
一人前 登録日: 2009/10/6 居住地: 投稿: 104 |
Re: CSV出力後、ステータスを自動更新したいのですが。 何度もすみません。
CSV出力後の更新処理ができません。 現在以下のような実装にしています。 LC_Page_Admin_Contents_CsvSqlクラスにて、 case "csv_output":の箇所で、 // CSV出力データ取得 $data = SC_Utils_Ex::getCSVData($arrCsvOutputData, $arrKey); // CSV出力 SC_Utils_Ex::sfCSVDownload($header.$data); // 更新対象データの受注ID取得 $arrOrderId = $this->getOrderId(); // ステータス更新 lfUpdateStatus($arrOrderId); exit; break; 最後のlfUpdateStatus()メソッドは以下のような実装です。 function lfUpdateStatus($arrData = array()){ // クエリーインスタンス生成 $objQuery = new SC_Query(); $orderId[] = ""; // 更新対象テーブル $table = "dtb_order"; // 更新カラム $sqlval = array("status" => 7); // データの数だけUPDATE実行 for($i=0 ; $i < count($arrData) ; $i++){ // 配列中の受注IDを取得 $orderId = $arrData[$i]["order_id"]; // 更新対象条件 $where = "order_id = ".$orderId; // UPDATE実行 $objQuery->update($table, $sqlval, $where, $arradd = "", $addcol = ""); } } CSV出力した際は、別ウィンドウにて確認、保存先の決定をしていますが、 そのような場合、処理がサーバ側に戻っていない・・ なんてことはないですよね!? exit;してbreak;していますもんね・・。 行き詰ってしまいました。 アドバイス、ご指摘のほどよろしくお願いいたします。 |
lvsa |
投稿日時: 2009/10/8 18:29
対応状況: −−−
|
一人前 登録日: 2009/10/6 居住地: 投稿: 104 |
Re: CSV出力後、ステータスを自動更新したいのですが。 seasoftさま
いつもありがとうございます。 おかげさまで、変数内の値を確認できました。 また、何かあったときは、アドバイスよろしくお願いいたします。 |
seasoft |
投稿日時: 2009/10/8 18:18
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: CSV出力後、ステータスを自動更新したいのですが。 そういったケースですと、echo でなく、var_dump() で出力し、直後で exit するのが良いような気がします。
|
lvsa |
投稿日時: 2009/10/8 17:37
対応状況: −−−
|
一人前 登録日: 2009/10/6 居住地: 投稿: 104 |
Re: CSV出力後、ステータスを自動更新したいのですが。 いつもお世話になっております。
インストールしなおしたことにより、 echoやvar_dumpなどはできるようになったのですが、 LC_Page_Admin_Contents_CsvSql.php内の processメソッドにてPOSTされて来たモードにより、 処理を分岐している箇所があるのですが、 そこでのechoが効かず、変数に格納されているデータを 知ることができない状態です。 該当箇所は以下になります。 $mode = $_POST['mode']; switch($_POST['mode']) { // データの登録 case "confirm": // エラーチェック $this->arrErr = $this->lfCheckError($_POST); if (count($this->arrErr) <= 0){ // データの更新 $sql_id = $this->lfUpdData($sql_id, $_POST); // 完了メッセージ表示 $this->tpl_onload = "alert('登録が完了しました。');"; } break; // 確認画面 case "preview": // SQL文表示 $sql = "SELECT \n" . $_POST['csv_sql']; // FIXME $this->sql = $sql; // エラー表示 $objErrMsg = $this->lfCheckSQL($_POST); if ($objErrMsg != "") { $errMsg = $objErrMsg->message . "\n" . $objErrMsg->userinfo; } $this->sqlerr = isset($errMsg) ? $errMsg : "" ; $this->objView = $objView; // 画面の表示 $objView->assignobj($this); $objView->display('contents/csv_sql_view.tpl'); exit; break; // 新規作成 case "new_page": $this->sendRedirect($this->getLocation("./csv_sql.php")); exit; break; // データ削除 case "delete": $this->lfDelData($sql_id); $this->sendRedirect($this->getLocation("./csv_sql.php")); exit; break; case "csv_output": // CSV出力データ取得 $arrCsvData = $this->lfGetSqlList(" WHERE sql_id = ?", array($_POST['csv_output_id'])); $objQuery = new SC_Query(); $arrCsvOutputData = $objQuery->getall("SELECT " . $arrCsvData[0]['csv_sql']); if (count($arrCsvOutputData) > 0) { $arrKey = array_keys(SC_Utils_Ex::sfSwapArray($arrCsvOutputData)); $i = 0; $header = ""; foreach($arrKey as $data) { if ($i != 0) $header .= ", "; $header .= $data; $i ++; } $header .= "\r\n"; $data = SC_Utils_Ex::getCSVData($arrCsvOutputData, $arrKey); // CSV出力 SC_Utils_Ex::sfCSVDownload($header.$data); exit; break; }else{ $this->tpl_onload = "alert('出力データがありません。');"; $sql_id = ""; $_POST=""; } break; } 上記箇所の case "csv_output": // CSV出力データ取得 $arrCsvData = $this->lfGetSqlList(" WHERE sql_id = ?", array($_POST['csv_output_id'])); の部分の$arrCsvDataにどのような値が格納されているかを echoにて表示しようとしましたが、表示されません。 そもそもcase "csv_output":の場合、 javaScriptにて別ウィンドウを立ち上げてcsvの出力を行って いると思いますが、そのような場合、echoは効かないのですかね? 初歩的な質問で申し訳ありません。 また、このスレッドにて質問するのは間違っているかもしれませんが・・ お力添えよろしくお願いいたします。 |
lvsa |
投稿日時: 2009/10/7 18:40
対応状況: −−−
|
一人前 登録日: 2009/10/6 居住地: 投稿: 104 |
Re: CSV出力後、ステータスを自動更新したいのですが。 seasoft様
お忙しい中、返信ありがとうございます。 >そんなときは、同一ディレクトリ内のファイルを全て削除します。 上記手順にて確認してみます。 ほんとにありがとうございます。 |
seasoft |
投稿日時: 2009/10/7 18:32
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: CSV出力後、ステータスを自動更新したいのですが。 > 上記デバッグ法を試みたところ、ファイルがないのに、
> 高度な設定にてCSV出力ができてしまいました。 > 該当ファイルは以下です。 > /data/class/pages/admin/contents/LC_Page_Admin_Contents_CsvSql.php > CSV出力の高度な設定のソースは、上記ファイルで間違いないですよね? スイマセン。少々ソース確認する時間が無いので、追跡手法ですが・・・ そんなときは、同一ディレクトリ内のファイルを全て削除します。
|
lvsa |
投稿日時: 2009/10/7 18:11
対応状況: −−−
|
一人前 登録日: 2009/10/6 居住地: 投稿: 104 |
Re: CSV出力後、ステータスを自動更新したいのですが。 seasoft様
いつもありがとうございます。 インストールはまだしておりませんが、 >当該ファイルを削除して、読み込んでいるかを確認するという手法もデバッグ時には有効です。 上記デバッグ法を試みたところ、ファイルがないのに、 高度な設定にてCSV出力ができてしまいました。 該当ファイルは以下です。 /data/class/pages/admin/contents/LC_Page_Admin_Contents_CsvSql.php CSV出力の高度な設定のソースは、上記ファイルで間違いないですよね? 認識が間違っているのでしょうか?? 質問ばかりで申し訳ないのですが、お力添えのほどよろしくお願いいたします。 |
seasoft |
投稿日時: 2009/10/7 14:41
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: CSV出力後、ステータスを自動更新したいのですが。 引用:
原因不明なのは気持ち悪いですが、一旦クリアして考え直すのは心理的にも良いと思います。 あと、当該ファイルを削除して、読み込んでいるかを確認するという手法もデバッグ時には有効です。参考まで。
|
(1) 2 3 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |