php中的$_POST问题 20

在html代码中,一共有三个复选框。<html><body><formid="form1"name="form1"method="post"action="source/... 在html代码中,一共有三个复选框。
<html>
<body>
<form id="form1" name="form1" method="post" action="source/love_list.php">
<p>
<label><input type="checkbox" name="lv[]" value="movie" id="movie" />1</label>

<label><input type="checkbox" name="lv[]" value="music" id="music" />2</label>

<label><input type="checkbox" name="lv[]" value="pc" id="pc" />3</label>

//此处略去无数复选框
<label><input type="checkbox" name="lv[]" value="game" id="game" />100</label></p>
<p>  <input name="submit" type="submit" value="下一步" /></p>

</form>
</body>
</html>
/*假设我在这个页面只勾选了1、34、64、74.然后提交
现在想问的是,我重新新建一个php文件,应该怎么样用$_POST只取第一个值并赋给一个变量。
p.s $_POST[0]、$_POST['0'],$_POST["0"]分别代表了什么?
*/
假设有100个复选框,不是3个
展开
 我来答
hansuper88
2011-06-08 · TA获得超过6627个赞
知道小有建树答主
回答量:838
采纳率:0%
帮助的人:698万
展开全部
你要新建的 PHP 文件名必须是 source 目录下的 love_list.php
这样这个 html 表单才会正确传值到这个文件。

取第一个值很容易,因为 name 是数组,value 就是键值,那么第一个 checkbox 的值就出来了

$lv[0] = 'movie‘;

这个数组再赋值给 $_POST 数组,那么就是:

$_POST['lv'][0] = 'movie';

这样,就取到了第一个 checbox 的值了。
这样的话100个 checkbox 都有了不同的值,剩下的就是你想取哪个值就可以取哪个了。
同理,你想取几个值就可以取几个。
------
$_POST['0'],$_POST["0"] 是都是关联数组,无论用哪个都可以取到正确的值。
引号的作用就是将0变成了关联数组的键,而不是索引数组的索引。
$_POST[0] 是地地道道的索引数组,用 $_POST['0'],$_POST["0"] 将取不到它的值。
另外,建议你养成好习惯,使用关联数组时,尽量用单引号避免使用双引号。
现在你可能发现不了它们的区别,但你一旦参与大型项目开发时,就会发现他们的优劣。
追问
麻烦再详细讲一下$_POST[]的用法~  例如:$_POST['lv'][0] = 'movie';是二维数组?
麻烦讲的更全面一点~
追答
$_POST 是 PHP 的内置数组,它的作用就是用来存储表单的提交数据,它是随着表单的最终提交而自动生成的一个数组,在表单处理的逻辑中可直接使用它的值。
$_POST['lv'][0] 是二维数组
POST 表单中产生的值都是 $_POST 数组的键值,例 $_POST['username'] = 'abcd';
那么就对应含有 name="username" 的表单元素。其他也是同理。
你的问题中,表单元素是以数组形式的 name 声明存储 POST 值。就好比将一个一维组和令一个数组合并道理是一样的。
那么也就是说
该表单元素 checbox 的 name 就是数组 $lv, [] 表示未指定键命名,PHP 会默认使用索引数组,从最小的 0 开始递增键和值。 这个元素得到的值是 $lv[0] = 'movie';
$lv 数组不能作为表单数据使用,它就必须传递到 $_POST 数组中才能使用。
接下来就像上面说的,将一个一维组和令一个数组合(将一个数组的键值存入另一个数组,这个你会实现吧?呵呵,会的话就很容易懂,不会的话也没关系,这个组合动作是由 PHP 完成的,无需你参与,你只需要知道这是个组合的过程,并且知道组合后的 $_POST 数组是什么样的就行了)那么得到的最终变量和值就是 $_POST['lv'][0] = 'movie';
百度网友c040ba3
2011-06-08 · 超过41用户采纳过TA的回答
知道答主
回答量:194
采纳率:0%
帮助的人:125万
展开全部
要取第一个值,直接用
$movie = $_POST['movie'];
POST传递的参数是ID不是name
所以$_postp[0]是不能取到第一个的
至于他们三个的含义区别
$_post[0]是指$_post数组的第一个的参数
$_post['0']是指$_post数组中键为0的值
$_post["0"]也是指指$_post数组中键为0的值,但是双引号能识别引号内的变量,但是效率比单引号差
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式