将多个表单数据传递给PHP控制器

时间:2015-04-07 17:08:09

标签: javascript php jquery arrays

$('#save').on("click", function() {
      //collect the form data while iterating over the inputs
      var data = [];
      $('[name=form]').find('input, select, textarea').each(function() {
        if ($(this).attr('value') != '') {
          var name = $(this).attr('name');
          var value = $(this).attr('value');
          data[name] = value;
        }
      })
      for (var i = 1, ii = form.length; i < ii; i++) {
        var name = 'form' + i;
        $('[name=' + name + ']').find('input, textarea').each(function() {
          data[i] = [];
          if ($(this).attr('value') != '') {
            var name = $(this).attr('name');
            var value = $(this).attr('value');
            data[i][name] = value;
          }
        })
      }
      $.post('foo', data,
          function(data) {
            console.log(data);

我有上面的jquery代码,我希望将多个表单数据发布到我的PHP后端控制器中。

在我的控制器中,我使用了

 $input = Input::all()

问题1

如何访问已通过的数组中的数据? 让我们说我的表格中有foo输入和条形输入。我试着用

$input['foo']
$input['bar']

但我收到内部服务器错误且未定义索引错误。

问题2

如何访问数据[i] [名称]的数据?让我们说我有form1,form2,form3,所以我的数据数组将变成

$data[1][foo]
$data[2][foo]
$data[3][foo]

如何在我的PHP控制器中访问这些?

感谢并抱歉这个漫长的问题

1 个答案:

答案 0 :(得分:0)

使用FormData对象。

var formdata = new FormData();
formdata.append("name", value);

在服务器端你读取这样的值:

$name = $_POST["name"];