php field as key,php – $_POST as $key => $value使用复选框

这篇博客讨论了一个PHP开发者遇到的问题,即如何有效地更新大约200个复选框的数据库信息。目前的代码通过遍历$_POST数组来更新记录,但不适用于复选框。解决方案建议从已知的复选框列表开始,检查每个复选框是否被选中,以避免手动处理大量代码。同时,还提出了关于isset()函数的潜在问题,并提供了更安全的array_key_exists()函数替代方案。文章最后给出了一个改进的SQL更新语句示例。
摘要由CSDN通过智能技术生成

我无法获取表单来更新从复选框传递的信息.我得到了这个代码.

$one = isset($_POST['one']) ? 'on' : 'off';

只要我单独调用每个复选框,这都很有效.我的问题是我总共有大约200个复选框.

这是我用来更新的代码.任何人都可以帮我找出在我现在的代码中插入代码的位置吗?我尝试了各种各样的变化.

if($_POST['submit']){

if(!empty($applicant_id)){

$sql = "UPDATE play SET ";

foreach($_POST as $key => $value){

if(($key != 'submit') && ($key != 'applicant_id')){

$sql .= $key. " = '$value',";

}

}

$sql = substr($sql, 0, -1);

$sql .= " WHERE ".$applicant_id." = $applicant_id";

$result = mysql_query($sql,$db) or die(mysql_error(). "
SQL: $sql");

}

}

解决方法:

解决方案是从数组()或类似的可能复选框的已知列表开始.我可以假设您使用这样的列表生成表单吗?如果没有,你可能应该.然后,您可以使用相同数据的循环来检查每个复选框是否存在.

其他一些提示:

不建议使用isset($array [$key]).尽管大多数时候它都是可靠的,但如果$array [$key]为null,它将失败.正确的调用是array_key_exists($key,$array).

在为SQL编写字符串片段时,就像您正在做的那样,执行以下操作更为优雅:

$sqlvalues = array();

foreach( $options as $field ) {

if( array_key_exists('checkbox_'.$field, $_POST) )

$sqlvalues[] = $field.' = \'on\'';

else

$sqlvalues[] = $field.' = \'off\'';

}

mysql_query('UPDATE '.$table.' SET '.implode(', ', $sqlvalues).' WHERE applicant_id = '.$applicant_id);

标签:php,checkbox,http

来源: https://codeday.me/bug/20190730/1584284.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值