需要在php中使用jquery / ajax以数组格式获取数据

时间:2014-07-20 20:17:00

标签: php jquery ajax

在提交表格时我得到了结果..

name1=abhishekacad=test    

但我需要以数组格式获取数据。

$('button[type="submit"]').on('click',function(e)
{
   e.preventDefault();
   var submit_value = $(this).val();
   var acad_title = $("#acad_title option:selected").text(); 
   var name_suffix = $("#name_suffix").val();
   var dataString = 'name1='+ name_suffix + 'acad=' +acad_title ;

   $.ajax({
       type: "POST",
       data: dataString,
       async: false,
       url: "test.php",
    })

可能存在语法错误。

我是stackoverflow的新手,请忽略它,如果格式不正确,抱歉并且不知所措。

2 个答案:

答案 0 :(得分:1)

如果你想发布表格的数据,请使用:

$('button[type="submit"]').on('click',function(e)
{
   e.preventDefault();

   $.ajax({
       type: "POST",
       data: $(this).serialize(),
       async: false,
       url: "test.php"
    });
}

了解更多here
您必须正确设置表单字段名称,例如

<input type="text" name="name1" />

答案 1 :(得分:0)

由于缺少ambersand,您的数据字符串暂时无法正确传递。如果您不想手动传递参数值,可以利用jQuery的serialize()方法生成如下结果:

  "name1=value1&name2=value2"

这样做:

$('button[type="submit"]').on('click',function(e)
{
   e.preventDefault();
   var submit_value = $(this).val(), 
       dataString   = $(this).closest('form').serialize();

   $.ajax({
       type: "POST",
       data: dataString,
       async: false,
       url: "test.php"
    });
}

这会收集所有输入字段值。当然,只考虑具有声明的name属性的字段。当然,您必须将输入字段名称与php等待的参数进行匹配。如果不是你的ajax呼叫将失败。

现在,如果你想传递一个数组,你可以使用serializeArray()返回一个这样的格式:

[
  {
    name: "a",
    value: "1"
  },
  {
    name: "b",
    value: "2"
  }
]

还要考虑使用

$('form').on('submit',function(e){});

以便您的代码可以在点击提交按钮后或在按下enterreturn键后运行。