如何从$ post获取序列化数据并循环通过它?

时间:2017-08-07 14:45:18

标签: jquery arrays post jquery-cloneya

我有一个使用Cloneya的表单,这是一个jquery插件,可以轻松管理选择和输入框克隆。

我的html表单如下:

  <div class="spacer-b10 colm colm2">
    <label class="prepend-icon"><input type="text" name="acc_code[1]" id="acc_code"
    class="gui-input" placeholder="Code" /> </label>
  </div>

  <div class="spacer-b10 colm colm2">
    <label class="field select"><select id="acc_name" name="acc_name[1]" style=
    "font-size:12x">
      <option value="">
        Account
      </option>

      <option value="Administrator">
        Administrator
      </option>

      <option value="Read Only">
        Read Only
      </option>
    </select> </label>
  </div>

cloneya插件会自动创建元素名称。

然后我有以下ajax脚本:

jQuery(document).ready(function($) {

            $('#account2').submit(function(e) {

                e.preventDefault(); // Prevent Default Submission

                $.ajax({
                        url: 'submit.php',
                        type: 'POST',
                        data: $(this).serialize() // serialize the form data
                    })
                    .done(function(data) {
                        $('#form-content').fadeOut('slow', function() {
                            $('#form-content').fadeIn('slow').html(data);
                        });
                    })
                    .fail(function() {
                        alert('Ajax Submit Failed ...');
                    });
            });

在我的文件check.php中我想确保获取所有$ _post形式是否为数组,如果这些是数组,以确保循环遍历所有克隆元素(用于数据库插入)。

这样做的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用serializeArray()并将表单发送为JSON.stringify(paramsToSend)

var paramsToSend = {};
paramsToSend['form'] = $('#account2').serializeArray();

$.ajax({
    url: 'submit.php',
    type: 'POST',
    data: {
      params: JSON.stringify(paramsToSend)
    },
  })
  .done(function(data) {
    $('#form-content').fadeOut('slow', function() {
      $('#form-content').fadeIn('slow').html(data);
    });
  })
  .fail(function() {
    alert('Ajax Submit Failed ...');
  });
});

在您的服务器端, submit.php ,您可以:

$parameters = json_decode($_POST['params']);

要将它们转换为数组并在$_POST中包含该数组,您可以:

$_POST = (array) $parameters;