Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery从表单数据创建数组_Javascript_Jquery_Ajax_Arrays_Multidimensional Array - Fatal编程技术网

Javascript jquery从表单数据创建数组

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]"

我已经为这个问题绞尽脑汁好几个小时了

基本上,我需要做的是采用以下或类似的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>
<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());