0

我正在构建一个简单的应用程序,其基本任务是批准从 MySQL 表中列出的内容。列表项很长,例如 15 到 20 项。我想在列表项上放置一个复选框,并允许用户检查多个项目并单击提交按钮以批准所选项目。

我在表格上做了一个基本的标志列来设置 0 或 1 来表示批准或不批准。在我现有的系统中,用户必须单击链接并转到特定页面并单击批准才能批准该项目。我想通过允许用户选中复选框并选择多个条目来一次性批准这些项目来缩短流程时间。

在此处输入图像描述

这是我的桌子,项目是 YouTube 链接,因此管理员可以查看视频,如果视频很好,他/她可以通过选中复选框来批准它。

这是特定于批准项目的当前页面的 php 代码

<?php 
$msg = "";
$idForm = $_GET['id'];

if( isset( $_POST['submit'] ) ){
    $msg= approveVideo($idForm);
}
?>

批准视频功能:

function approveVideo($id) {
    $message ="";
    $query= "UPDATE locus_videos SET set_flag='1' WHERE id='{$id}'";

    if(mysql_query($query)) {
        $message ="Video Approved ";
    }else {
        die("failed: " . mysql_error());    
    }

    return $message;

}

php 文件的表格格式:

<table width="100%" height="487" border="0" cellpadding="5" cellspacing="5">

" 方法="POST">

    <table width="100%" border="0" cellspacing="5" cellpadding="5">

上传者姓名视频链接

"> " 目标="_blank">

  </form>
</td>

在我当前的版本中,当用户单击视频链接时,此链接将重定向到特定页面,并且只有他可以从那里批准视频(YouTube 链接)

4

2 回答 2

2

相当容易。对于要批准的每个内容,您都需要一组复选框(如下)。将每个复选框的值作为内容id

<input type="checkbox" id="chk_1" name="**band[]**" value="ABC" /> ABC <br/>
<input type="checkbox" id="chk_2" name="**band[]**" value="PQR" /> PQR <br/>
<input type="checkbox" id="chk_3" name="**band[]**" value="XYZ" /> XYZ <br/>

现在上面的复选框将被封装在你的 . 当您提交表单并检查 POSTed 数组(即 $_POST)时,它将包含以下条目

Array ("band" => Array("0" => ABC, 1 => PQR.); );

使用 php 的 implode 函数将其转换为逗号分隔的 php 字符串,并将此字符串传递给 Update 查询的 WHERE 的 IN 子句。

有两件事很重要。

1)您需要使用我在上面的示例中使用的复选框数组。

2)您需要将复选框的 value 属性设置为内容 id 或内容表的主键。希望这可以帮助。

于 2012-05-17T11:02:55.267 回答
2

有两种方法,具体取决于您是只想“批准”行,还是“批准”和“拒绝”行。

第一的:

<table>
    <thead>
        <tr>
            <td>&nbsp;</td>
            <td>Url</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><input type="checkbox" name="Approve[]" value="1" /></td>
            <td>http://www.youtube.com/...</td>
        </tr>
        <tr>
            <td><input type="checkbox" name="Approve[]" value="2" /></td>
            <td>http://www.youtube.com/...</td>
        </tr>
        <tr>
            <td><input type="checkbox" name="Approve[]" value="3" /></td>
            <td>http://www.youtube.com/...</td>
        </tr>
    </tbody>
</table>

如您所见,有一个名为“Approve[]”的复选框,每行都有一个不同的值。该值是表的 ID 列。

在您的 PHP 中,您将使用以下内容:

function approveVideos($ids)
{
    $message = '';
    $query = 'update locus_videos set set_flag = 1 where id in (' . implode(',', $ids) . ')';
    if(mysql_query($query)) 
    {
        $message ="Videos Approved ";
    }
    else 
    {
        die("failed: " . mysql_error());    
    }
    return $message;
}


$ids = $_POST['Approve'];
approveVideos($ids);

第二:

<table>
    <thead>
        <tr>
            <td>&nbsp;</td>
            <td>Url</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><input type="hidden" name="Approve[1]" value="0" /><input type="checkbox" name="Approve[1]" value="1" /></td>
            <td>http://www.youtube.com/...</td>
        </tr>
        <tr>
            <td><input type="hidden" name="Approve[2]" value="0" /><input type="checkbox" name="Approve[2]" value="1" /></td>
            <td>http://www.youtube.com/...</td>
        </tr>
        <tr>
            <td><input type="hidden" name="Approve[3]" value="0" /><input type="checkbox" name="Approve[3]" value="1" /></td>
            <td>http://www.youtube.com/...</td>
        </tr>
    </tbody>
</table>

在 PHP 中,您将执行以下操作:

function setVideoFlag($id, $flag = 1)
{
    $message = '';
    $query = 'update locus_videos set set_flag = ' . $flag . ' where id = ' . $id;
    if(mysql_query($query)) 
    {
        $message ="Video " . ($flag == 1 ? 'Approved' : 'Disapproved');
    }
    else 
    {
        die("failed: " . mysql_error());    
    }
    return $message;
}

foreach($_POST['Approve'] as $id => $flag)
{
    setVideoFlag($id, $flag);
}

我希望这有帮助吗?

加文

于 2012-05-17T11:28:45.817 回答