php – $_POST as $key => $value使用复选框
发布时间:2020-12-13 21:35:08 所属栏目:PHP教程 来源:网络整理
导读:我无法获取表单来更新从复选框传递的信息.我得到了这个代码. $one = isset($_POST['one']) ? 'on' : 'off'; 只要我单独调用每个复选框,这都很有效.我的问题是我总共有大约200个复选框. 这是我用来更新的代码.任何人都可以帮我找出在我现在的代码中插入代码的
我无法获取表单来更新从复选框传递的信息.我得到了这个代码.
$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,-1); $sql .= " WHERE ".$applicant_id." = $applicant_id"; $result = mysql_query($sql,$db) or die(mysql_error(). "<br />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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |