Zao’s Blog
感谢上天,我不是一个人在战斗!
炒股开户,证券网上开户,不限资金佣金万1.5包含规费,量大手续费万1.3,QQ 860100868
十月
1

PHP中表单名name和类型type都相同,提交后如何取得它们的值?这是我在做一个表单时遇到的问题,最佳的解决方法如下:

从数据库中取出一组数据以列表形式显示在页面上,每条记录前有一个”checkbox”供多选记录,而这个checkbox的name是相同的。在jsp中所有被选中的”checkbox”将以数组形式传递到服务器端,这是一个理所应当的方便程序员的设计,但是php恰恰没有这么做……他只传递了最后一个”checkbox”的值!真是不明白为什么要这么设计……

那么我们该如何处理呢?checkbox肯定还是要用的,只需将checkbox的name设定为php的数组形式即可:

<input type="checkbox" name="pid[]" value="1" />

这样所有选中的checkbox的值就会以数组形式传递到服务器端,

  1. $name_arr=$_POST['pid'];
  2. $num=count($name_arr);
  3. for($i=0;$i<$num;$i++)
  4. {
  5. $name=$name_arr[$i];
  6. .........
  7. }

但是这里又引发了另外一个问题,就是javascript通过name访问checkbox时会发生错误。解决的办法也很简单就是再给checkbox的id赋值,

<input type="checkbox" name="pid[]" id="pid" value="1" />

javascript通过id访问checkbox,这就绕过了前面的问题。 :mrgreen:

3 条评论 | 发表你的评论

xie xie le o ,ni jiejue le wo de wenti .thx

可是当你未选择改checkbox时 是不传递值的
譬如有5个checkbox,而你只选了三个,那pid[]这个数组也只有3个元素。这样你又如何用PHP判断是哪几个checkbox被选中了呢?
你说呢

每个元素都有一个唯一的 value 值,这不是很容易就知道是哪个 checkbox 了吗? :mrgreen:

发表评论





改变评论框高度:增大(+) | 减小(-)

DO NOT Fill!