php中复选框和多选框提交数据处理办法

 在PHP开发中,表单提交应该非常常用,在所有表单数据中,对于初学者,比较难的恐怕就是复选和多选这种提交数组的处理和上传处理,今天不说上传,就说说处理复选和多选下拉列表。一个复选和多选表单如下

<html>
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>php获取 checkbox复选框值的方法</title> 
</head> 
<body> 
<form name="form1" method="post" action="testmultiform.php"> 
<label> 
<input type="checkbox" name="checkbox[]" value="cb1"> 
复选一 
</label> 
<label> 
<input type="checkbox" name="checkbox[]" value="cb2"> 
</label> 
复选二 
<label> 
<input type="checkbox" name="checkbox[]" value="cb3"> 
</label> 
复选三 
<label> 
<input type="checkbox" name="checkbox[]" value="cb4"> 
</label> 
复选四 
<label> 
<input type="submit" name="Submit" value="提交"> 
</label> 
</form> 
</body> 
</html> 

<?php
if( $_POST ) 
{ 
	$value = $_POST['checkbox']; 
	foreach($value as $onevalue){
		echo $onevalue;
	}
	echo '你选择了:'.implode(',',$value); 
	//由于checkbox属性,我们必须把checkbox复选择框的名字设置为一个如果checkbox[],这样php才能读取,以数据形式,否则不能正确的读取checkbox复选框的值哦。
} 
?> 


折里[]是php特有的,其他如.net、java是没有的,php如果不加的话是接收不到这些数据的。接收数据$arrc = $_POST['c'];$arrlist = $_POST['list'];这里收到的都是数组,一般不直接存入数据库,而是转换成字符串存入,就像 1,2,3这种形式,对于非数字字符串,存储数据库以后要想显示比较方便,直接读取显示,而对于数字字符串,我们一般有可能用这些数字所代表的id去数据库中充当条件,查询数据,所以使用的时候还要把这些字符串还原成数组,然后通过循环来查询显示。

    数组与字符串转换的函数主要就是implode用来转换成字符串,explode用来还原成数组,如果只是存入数据库,serialize函数更好,用来数据序列化存入数据库,取出我们用unserialize来还原成数组,非常方便,这就是两种用来常用处理数组存储到数据库,有没有更好的我不知道,我在开发中就是主要用的这两种。

implode(separator,array) implode() 函数返回由数组元素组合成的字符串。
参数 描述
separator 可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。
array 必需。要组合为字符串的数组。

语法

explode(separator,string,limit) explode() 函数把字符串打散为数组。 注释:"separator" 参数不能是空字符串。
参数 描述
separator 必需。规定在哪里分割字符串。
string 必需。要分割的字符串。
limit

可选。规定所返回的数组元素的数目。

可能的值:

  • 大于 0 - 返回包含最多 limit 个元素的数组
  • 小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组
  • 0 - 返回包含一个元素的数组

展开阅读全文

没有更多推荐了,返回首页