【问题标题】:PHP post checkbox problemPHP post复选框问题
【发布时间】:2010-07-31 03:17:11
【问题描述】:

我已经写了检查所有并删除,但是当我点击删除表单时提交但复选框的值没有发布

我的 html 代码如下:

<?php
$sql="select * from tbl_comment order by id desc limit $start,$rec_per_page";
$result = $db->sql_query($sql);
?>
<br>
<form action="?page=<?=$_REQUEST['page']?>&op=delete" method="post" name="email">
    <table border=0 cellpadding=5 width="100%" cellspacing=0>
        <tr class="text1">
            <td colspan=3 class="darkBlue"><B>Comment List</B></td>
        </tr>
        <tr bgcolor="#CACBD2" class="text1">
            <td class="text1"><B>Name</B></td>
            <td class="text1"><B>Comment</B></td>
            <td class="text1"><strong>Action   </strong></td>
        </tr>
        <?php
        $r1=0;
        $class='white';
        while($rec=$db->sql_fetchrow($result))
        {
            $status = $rec['status'];
            if($status==1)
                $activelink = '<a href="index.php?page='.$page.'&comment_id='.$rec['id'].'&op=status&flag=disapprove&page_em='.$page_em.'" onclick="return confirm(\'Do you want to disapprove?\')">Disapprove</a>';
            else
                $activelink = '<a href="index.php?page='.$page.'&comment_id='.$rec['id'].'&op=status&flag=approve&page_em='.$page_em.'" onclick="return confirm(\'Do you want to Approve?\')">Approve</a>';
        ?>
        <tr class="<?= $class;?>">
            <td><?=$rec['fname'].$rec['lname']?></td>
            <td><?=$rec['comment']?></td>
            <td><!--<a href="index.php?page=<?=$page?>&comment_id=<?=$rec['id']?>&op=delete" onclick="return confirm('Do you want to Delete?')">[X]</a>--><input type="checkbox" name="chkdelete[]" id="chkdelete[]" value="<?=$rec['id']?>" /><?=$rec['id']?>&nbsp;|&nbsp;<?=$activelink?></td>
        </tr>
        <?php
        if($class=='white')
            $class='lightBlue';
        else
            $class='white'; 
        }

        for($pages = 1; $pages <= $total_pages; $pages++) 
        { 
            if ($pages == $page_em) 
            { 
                $nav .= "<strong  style='font-size:12px;' class='redbold'>".$pages."</strong>&nbsp;&nbsp;";
            } 
            else 
            { 
                $nav .= "<a href=\"?page_em=".$pages."&page=comments\">".$pages."</a>&nbsp;&nbsp;";
            }         
        }

        if ($total_pages > 1)
        {
            if (($page_em-1) > 0) {
                $prev= "<a href=\"?page_em=".($page_em-1)."&page=comments\">Previous</a>&nbsp;&nbsp;";
            } else {
                $prev= "Previous&nbsp;&nbsp;";
            }
            $content .= "&nbsp;&nbsp;";
            if (($page_em+1) <= $total_pages) {
                $next.= "<a href=\"?page_em=".($page_em+1)."&page=comments\">Next</a>";
            } else {
                $next= "Next";
            }
        }

        $NavigationButton=$prev.$nav.$next;
        if($total_rec==0){
            $NavigationButton="Record not found!";
        }
        ?>  
        <tR class="text1">
            <td ><?=$NavigationButton?></td>
            <td></td>
            <td align="left">
                <strong>
                    <input type="checkbox" name="All" id="All" value="yes"  onclick="javascript:checkall();"/> (Select All) |
                    <label>
                        <input type="submit" name="Submit" value="Delete Selected" onclick="return confirm('Do you want to Delete?')"/>
                    </label>
                </strong>
            </td>
        </tr>
    </table>
</form>
<?php
}

要删除的功能如下:

function delete_email()
{

    print_r($ids = $_POST['chkdelete']);

    foreach($ids as $key=>$id)
    {
        echo "hi2"; die;
        global $db;
        //$email=$_GET['comment_id'];
        $sql="delete from tbl_comment where id='".$id."'";
        $db->sql_query($sql);
        echo "deleted comments".$id;
    }
    //$url="index.php?page=".$page;
    //header("Location:".$url);
}

请大家帮帮我

【问题讨论】:

    标签: php checkbox


    【解决方案1】:

    据我所知,您的复选框名称为 chkdelete[],而您指的是 POST 变量 chkdelete(没有 [])。

    【讨论】:

    • 没关系,$_POST['chkdelete'] 应该是数组,因为输入名称以 '[]' 结尾。
    • 是的,请帮助我,我花了很多时间在这上面,我之前已经这样做了,但在这我无法得到任何错误
    • print_r 语句是否在$_POST['chkdelete'] 变量中显示任何内容?
    【解决方案2】:
    <form action="?page=<?=$_REQUEST['page']?>&op=delete" ...
    

    您是否使用此表单操作实现了正确的功能?此外,如果您在此 url 上进行一些重定向,您的 $_POST 数据将会丢失(发出另一个请求,但没有发布数据)。

    应该与您的问题无关,但值得注意的是,您为所有复选框分配了相同的 DOM id ('chkdelete[]'),而它应该是唯一的。

    【讨论】:

      猜你喜欢
      • 2012-10-16
      • 2011-03-15
      • 2020-08-12
      • 2011-02-08
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      相关资源
      最近更新 更多