使用jQuery AJAX发布关联数组数组、jQuery、AJAX

2023-09-10 16:57:31 作者:寒烟锦瑟弦ι

我使用CakePHP的形式创建表单。它是建立形式是这样的:

I am creating form using cakephp form. It is creating form something like this:

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

这是正常的形式提交表单和获取数据这样的事情时,工作正常:

It is working fine when submitting form in normal form and getting data something like this:

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

但是,当我提交使用jQuery相同的形式 $。阿贾克斯()函数和发布数据序列化()功能。我得到的数据是这样的服务器端。

But when I submit same form using jQuery $.ajax() function and posting data with serialize() function. I am getting data something like this on server side.

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
)

usign jQuery的$。阿贾克斯()函数时,我怎样才能得到联想阵列形式的表单数据?

How can I get form data in form of associate arrays when usign jQuery $.ajax() function ?

编辑:

$('#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,使用$。员额简写代替。

No need to user Low-Level ajax, use $.post shorthand instead.

试试这个:

$(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   
      });

   });  

});

您问POST ASSOC阵列使用jQuery, 所以你会得到的是,

You asked for POST ASSOC ARRAY Using jquery, so you'll get that,

在你的PHP脚本:

<?php

print_r($_POST); //will print what you want
 
精彩推荐
图片推荐