javascript中的取input对象集合与php中取input数组的区别
2016-08-06 12:16
549 查看
eg:
<form action="" method="post" name="form1">
<input type="text" name="txt[]"><br/>
<input type="text" name="txt[]"><br/>
选项1:<input type="checkbox" name="chk[]" value="one"><br/>
选项2:<input type="checkbox" name="chk[]" value="two"><br/>
<input type="text" id="hint" size="50">
<input type="submit" value="check it" name="Submit"> <input type="button" value="点击" onclick="myfunction()">
</form>
在上面这段代码中,当点击submit控件时,可以在脚本页通过php取得text,checkbox的数组形式。
<?php
var_dump($_POST['chk']);
此时$_POST['chk']是有被选中的checkbox组成的数组。如果checkbox都没有选中,则isset($_POST['chk'])为false;
?>
但是在上面代码中加上js代码
<script>
function myfunction()
{
var chk=document.getElementsByName("chk");
alert(chk.length);
var txt="你的选择为:";
for(var i=0;i<chk.length;i++)
{
if(chk[i].checked)
{
txt+=chk[i].value+" ";
}
}
document.getElementById("hint").value=txt;
}
</script>
此时alert(chk.length);显示为0.
这是因为document.getElementsByName("chk")的缘故
如果要document.getElementsByName("chk")有效果,需要将<input type="chkbox" name="chk[]">改为<input type="chkbox" jname="chk">
在<input type="chkbox" name="chk[]">的情况下只有document.getElementsByName("chk[]")
时,alert(chk.length)才会显示数量
<form action="" method="post" name="form1">
<input type="text" name="txt[]"><br/>
<input type="text" name="txt[]"><br/>
选项1:<input type="checkbox" name="chk[]" value="one"><br/>
选项2:<input type="checkbox" name="chk[]" value="two"><br/>
<input type="text" id="hint" size="50">
<input type="submit" value="check it" name="Submit"> <input type="button" value="点击" onclick="myfunction()">
</form>
在上面这段代码中,当点击submit控件时,可以在脚本页通过php取得text,checkbox的数组形式。
<?php
var_dump($_POST['chk']);
此时$_POST['chk']是有被选中的checkbox组成的数组。如果checkbox都没有选中,则isset($_POST['chk'])为false;
?>
但是在上面代码中加上js代码
<script>
function myfunction()
{
var chk=document.getElementsByName("chk");
alert(chk.length);
var txt="你的选择为:";
for(var i=0;i<chk.length;i++)
{
if(chk[i].checked)
{
txt+=chk[i].value+" ";
}
}
document.getElementById("hint").value=txt;
}
</script>
此时alert(chk.length);显示为0.
这是因为document.getElementsByName("chk")的缘故
如果要document.getElementsByName("chk")有效果,需要将<input type="chkbox" name="chk[]">改为<input type="chkbox" jname="chk">
在<input type="chkbox" name="chk[]">的情况下只有document.getElementsByName("chk[]")
时,alert(chk.length)才会显示数量
相关文章推荐
- 浅谈PHP与javascript之JSON XML 数组 对象三者的区别
- PHP和Javascript访问数组和对象时的区别
- C/C++,Java,PHP,JavaScript,Json数组、对象赋值时,最后一个元素后面是否可以带逗号?
- [转载]php 数组 类对象 值传递 引用传递 区别
- 浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
- 如何将php数组或者对象传递给javascript
- JSP页面遍历对象集合,map,数组等,Struts的s标签和c标签的区别
- javascript数组与对象区别和联系
- Javascript中数组、对象的区别
- 如何将php数组或者对象传递给javascript
- php 数组 类对象 值传递 引用传递 区别
- JavaScript 数据元素集合与数组的区别说明
- javascript 区别数组和对象
- php 数组 类对象 值传递 引用传递 区别
- 浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
- javascript中讨论关联数组和对象的区别
- 将PHP数组或对象传递给javascript 交互 传值 json_encode
- php对象与数组的区别,类与对象的联系
- 集合和数组保存对象的引用变量(区别C++的STL实现)
- 将php数组或者对象传递给javascript的方法