Javascript jquery从表单数据创建数组
我已经为这个问题绞尽脑汁好几个小时了 基本上,我需要做的是采用以下或类似的HTML:Javascript jquery从表单数据创建数组,javascript,jquery,ajax,arrays,multidimensional-array,Javascript,Jquery,Ajax,Arrays,Multidimensional Array,我已经为这个问题绞尽脑汁好几个小时了 基本上,我需要做的是采用以下或类似的HTML: <div id="excpdivs"> <div class="excpdiv" id="excpdiv0"> Date: <input name="excp[0][date]"> Open: <input name="excp[0][open]"> Close: <input name="excp[0][close]"
<div id="excpdivs">
<div class="excpdiv" id="excpdiv0">
Date: <input name="excp[0][date]">
Open: <input name="excp[0][open]">
Close: <input name="excp[0][close]">
</div>
<div class="excpdiv" id="expdiv1">
Date: <input name="excp[1][date]">
Open: <input name="excp[1][open]">
Close: <input name="excp[1][close]">
</div>
我的主要问题是从输入元素中获取值。我最近的尝试如下:
var results = [];
$(".excpdiv").each(function(){
var item = {};
var inpts = $(this).find("input");
item.date = $(inpts.get(0)).val();
item.open = $(inpts.get(1)).val();
item.close = $(inpts.get(2)).val();
results.push(item);
});
我是走对了路还是绝望地迷路了?我想你应该这样做
var results = [];
$(".excpdiv").each(function(){
var item = {};
var inpts = $(this).find("input");
item.date = $(inpts)[0].val();
item.open = $(inpts)[1].val();
item.close = $(inpts)[2].val();
results.push(item);
});
希望它能有所帮助……您不需要jquery,您拥有的HTML标记将为php提供一个数组。将输入包含在一个表单中,该表单将发布到php脚本以处理逻辑。然后,您可以通过以下方式访问您的信息:
$_POST['excp'][0]['date']
也许是一个简单的序列化 发件人:api.jquery.com/jquery.post/
Example: Send form data using ajax requests
$.post("test.php", $("#testform").serialize());
标准表单提交,还是Ajax?(与您的问题无关,您可以说
inpts.eq(0).val()
,而不是$(inpts.get(0)).val()
——这样您就不用自己创建另一个jQuery对象了。)您的问题是什么?代码可以改进,但它还可以。nnnnnn,Ajax代替提交的标准表单解决问题了吗?James,没有,仍然没有在item.date、item.close或item.open中获取任何值。谢谢你的帮助。我想我会试着睡一觉。谢谢你的及时回复。但是,我在您的代码中遇到了以下错误:Uncaught TypeError:Object#没有方法'val'lol我刚刚尝试了您自己的代码它似乎可以工作您到底想从中得到什么?为什么在使用了[0]
之类的东西之后调用.val()
?当您使用[0]
时,您得到的是DOM元素,它没有jQuery方法……我应该指定我希望通过ajax发送此内容,而不是直接将表单提交给PHP。您在这里指定了,它甚至不是标记。在任何情况下,都可以使用$.post发送post请求。.serialize()
正是我需要的方法。谢谢
Example: Send form data using ajax requests
$.post("test.php", $("#testform").serialize());