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个 展开
<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个 展开
展开全部
你要新建的 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"] 将取不到它的值。
另外,建议你养成好习惯,使用关联数组时,尽量用单引号避免使用双引号。
现在你可能发现不了它们的区别,但你一旦参与大型项目开发时,就会发现他们的优劣。
这样这个 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';
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询