首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP MYSQL复选框已选中

问PHP MYSQL复选框已选中
EN

Stack Overflow用户
提问于 2012-12-18 19:16:11
回答 1查看 2.3K关注 0票数 1

使用这行代码,我将每个选中的复选框的值添加到数据库中:

代码语言:javascript
复制
    // ADD ALL TYPES TO PRODUCTIONLOG_TYPE TABLE
    $x=1;
    $values=array();
    foreach($_POST['id'] as $x)
    {
        $AddToListQuery = "
                        INSERT INTO
                        productionlog_type
                       (productionlogid, typeid)
                        VALUES
                       ('" . mysql_real_escape_string($_GET['productionlog']) . "', '". mysql_real_escape_string($x) ."')
                       ";
        mysql_query($AddToListQuery)or die("query fout " . mysql_error() );
    }

我这样做是为了回显选中的复选框,如果这在数据库中已经存在。

现在的问题是,当用户取消选中复选框并发送表单时,它不会传递任何值,对吧?因此,如果复选框处于选中状态,我无法将其从database...means中删除。

对此我能做些什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-18 19:20:50

如果您知道将返回哪些复选框,则可以过滤掉您知道的复选框,然后只保留未选中的复选框。

在发送请求之前,您还可以查看页面的一些处理过程,例如使用JavaScript。

或者,您可以在表单中传递另一个隐藏变量,该变量包含PHP脚本中应该接收的所有复选框。例如:

代码语言:javascript
复制
<input type="hidden" value="id_1,id_2,id_3" />

如果您随后在PHP脚本中收到此消息,则可以看到(复选框中的)哪些ids是预期的。

编辑

如果您有:

代码语言:javascript
复制
<form method="POST">
    <input type="hidden" name="checks" value="id1,id2" />
    <input type="checkbox" name="id1" checked="checked" />
    <input type="checkbox" name="id2" />
</form>

然后在PHP中:

代码语言:javascript
复制
$arr = split(",", $_POST["checks"]);
foreach ($arr as $x){
    if(isset($_POST[$x])){
        // Add or update
    }else{
        // Remove
    }
}

注意:我还没有测试代码,但您只是想了解一下它是如何工作的

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13931759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档