-2

以下は、非 codeigniter コード作業で作成した php コードです。全チェック、全チェック解除の削除機能です。コントロールモデルまたはビューにある場合、これをどこに置くべきかわかりませんか? 誰でも私を助けてください。

<?php

/*Check Box Commands*/
$id=$row_notification['user_id'];

if(isset($_POST['Delete'])) {
$checkbox = $_POST['checkbox'];
mysql_select_db($database_connection_ched, $connection_ched);
$id=$row_notification['user_id'];

for($i=0;$i<count($checkbox);$i++)
  {
$delete = "DELETE FROM tb_user WHERE user_id=$checkbox[$i]";
mysql_query($delete,$connection_ched);

}
$result2 = mysql_query($delete);

if($result2)
{
echo "[removed]alert ('Successfully Deleted');[removed]"; 
echo "<meta http-equiv=\"refresh\" content=\"0;URL=notification.php?\">"; }

}
?>
4

2 に答える 2

0

リダイレクトに「メタ リフレッシュ」を使用しないでください。

PHP のヘッダー関数を使用します。

http://www.php.net/manual/en/function.header.php

そのコードをコントローラーに配置する必要があります。

例:

class MyController extends CI_Controller {
    public function index() {
        /*Check Box Commands*/
        $id=$row_notification['user_id'];

        if(isset($_POST['Delete'])) {
        $checkbox = $_POST['checkbox'];

        // use CodeIgniter models when communicating with your database
        // and when manipulating any database data
        // more on: http://codeigniter.com/user_guide/general/models.html
        mysql_select_db($database_connection_ched, $connection_ched);
        $id=$row_notification['user_id'];

        for($i=0;$i<count($checkbox);$i++) {
            $delete = "DELETE FROM tb_user WHERE user_id=$checkbox[$i]";
            mysql_query($delete,$connection_ched);
        }

        $result2 = mysql_query($delete);

        if($result2) {
            // as I pointed out, don't use "meta refresh" for redirection
            // and dont use alert for notifying anyone-anywhere
            echo "[removed]alert ('Successfully Deleted');[removed]";
            echo "<meta http-equiv=\"refresh\" content=\"0;URL=notification.php?\">"; }
        }
    }
}

そしてちょっとしたアドバイス:

何かが削除、挿入、変更などされたときに、JavaScript のアラート機能を介して誰かに通知する必要はありません。アラートは少し面倒です。

また、次のリンクもチェックしてください。

これにより、MVC がどのように機能し、CodeIgniter がどのように機能するかをより明確に把握できるようになります。

于 2012-10-15T01:18:08.840 に答える
-1

あなたの結果がjavascriptで更新されるべきなのはなぜですか? これは間違っています。必要です。スクリプトは 1 回実行され、更新されません。必要なのは印刷結果だけです。

使用する

   if ($result2 === true)  { echo 'Result: deleted '; }

それ以外の:

echo "[removed]alert ('Successfully Deleted');[removed]"; 
echo "<meta http-equiv=\"refresh\" content=\"0;URL=notification.php?\">"; }

var_dump()for ループ内で確認してください。データを受信して​​いない可能性があります。

または、コードをより適切に修復してみてください。

for($i=0;$i<count($checkbox);$i++)
  {
    $delete = "DELETE FROM tb_user WHERE user_id={$checkbox[$i]}";
    mysql_query($delete,$connection_ched);

}
于 2012-10-15T01:17:06.157 に答える