php - 使用 jquery ajax 发布关联数组

标签 php javascript jquery ajax cakephp

我正在使用 cakephp 表单创建表单。它正在创建这样的形式:

<form name='license' action='/some/action' action='POST'>

  <input type="text" id="license0Number" name="data[license][0][number]">
  <input type="text" id="license0Year" name="data[license][0][year]">

  <input type="text" id="license1Number" name="data[license][1][number]">
  <input type="text" id="license1Year" name="data[license][1][year]">

</form>

以正常形式提交表单并获取如下数据时工作正常:

$data = array( 'license' => array( '0' => array( 'number'=>'123', 'year'=>'2000' ),
                                   '1' => array( 'number'=>'321', 'year'=>'2003' )
                                 );

但是当我使用 jQuery $.ajax() 函数提交相同的表单并使用 serialize() 函数发布数据时。我在服务器端获取类似这样的数据。

Array
(
[data%5Blicense%5D%5B0%5D%5Bnumber%5D] => 123
[data%5Blicense%5D%5B0%5D%5Byear%5D] => 2000
[data%5Blicense%5D%5B1%5D%5Bnumber%5D] => 321
[data%5Blicense%5D%5B1%5D%5Byear%5D] => 2003
)

使用 jQuery $.ajax() 函数时如何以关联数组的形式获取表单数据?

编辑:

$('#license_form').live( 'submit', function( event ) {

  var action = '/some/action';
  var data = $(this).serialize();

  $.ajax({

     type: "POST",
     url: action,
     data: data, // form data
     success: function( result ) { alert( result ); },
     error: function() { alert('error'); }
  });

   event.preventDefault();
});

谢谢

最佳答案

无需使用低级 ajax,请使用 $.post 简写。

试试这个:

$(function(){

  $("#submit").click(function(){
     //Since you're talking about POST
     $.post('path_to_php_script.php', {

       "license0Number" : $("#license0Number").val(),
       "license0Year"   : $("#license0Year").val(),
       "license1Number" : $("#license1Number").val(),
       "license1Year"   : $("#license1Year").val()


      }, function(respond){

          //Respond from PHP
          //Maybe replace some div with the server respond?
          $("#some_div").html(respond); //optional   
      });

   });  

});

您要求使用 jquery 进行 POST ASSOC ARRAY, 所以你会明白的,

在你的 php 脚本中:

<?php

print_r($_POST); //will print what you want

关于php - 使用 jquery ajax 发布关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12247457/

相关文章:

php - 在 php 中通过 exec/system 执行时获取 linux 命令退出代码

php - 如何在类内启动 ob_start?

javascript - 跨 iframe 使用 jQuery 实例时如何修改查询上下文

jquery - 如果鼠标位于打开的 DIV 内,则在悬停后保持 DIV 打开

php - 在 Symfony 的 kernel.request 或 kernel.request 事件中获取当前用户

php - 安卓 : send json data to the Server

javascript - Three.js 通过 GUI 打开和关闭对象可见性

javascript - 为什么 jQuery 不能与 Bootstrap 4 alpha 6 一起使用?

php - jQuery AJAX 表单错误。空字符串

jquery - 在页面加载时运行代码一次,然后每次单击按钮时运行代码