Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery ajax将多维数组发布到php_Php_Jquery_Ajax - Fatal编程技术网

jquery ajax将多维数组发布到php

jquery ajax将多维数组发布到php,php,jquery,ajax,Php,Jquery,Ajax,我有一个下载为csv按钮,用于将结果导出为csv。到目前为止,我一直在为此使用服务器端代码。我正在将选定的下拉列表ID发送到csvdownload.php页面,该页面正在excel中写入结果 但是现在,我想要一个实用工具,用于使用复选框选择搜索结果,然后将所选结果写入csv 我计划在数组中获取表数据,然后使用ajax将其发布到php,然后它将完成其余的工作。但是如何将多行数据发布到php中呢我有下面一段代码来获取表数据,表数据是警报数据,但不知道如何将其作为数组传递给php $('#

我有一个下载为csv按钮,用于将结果导出为csv。到目前为止,我一直在为此使用服务器端代码。我正在将选定的下拉列表ID发送到csvdownload.php页面,该页面正在excel中写入结果

但是现在,我想要一个实用工具,用于使用复选框选择搜索结果,然后将所选结果写入csv

我计划在数组中获取表数据,然后使用ajax将其发布到php,然后它将完成其余的工作。但是如何将多行数据发布到php中呢我有下面一段代码来获取表数据,表数据是警报数据,但不知道如何将其作为数组传递给php

      $('#tblSearchResults tr').filter(':has(:checkbox:checked)').each(function() {
     $tr = $(this);
       //alert($tr.find("td").eq(4).html());

        var risk_cat = $tr.find("td").eq(1).html();
        var risk_type = $tr.find("td").eq(2).html();
        var risk_desc = $tr.find("td").eq(3).html();
        var treat_desc = $tr.find("td").eq(4).html();
        var treat_cat = $tr.find("td").eq(5).html();

        selectedData.push({"risk_cat": risk_cat, "risk_type": risk_type, "risk_desc": risk_desc, "treat_desc": treat_desc, "treat_cat": treat_cat});

谢谢

我认为您需要使用
JSON.stringify(selectedData)
才能在服务器端使用它

jQuery:

var obj = { 'risk_cat': risk_cat, 'risk_type': risk_type };
selectedData.push(obj);

$.post('serive.php', { DTO: JSON.stringify(selectedData) }, 
function(data){ /* handle response,  */ });

service.php:

header('Content-type: application/json');
header('Cache-Control: no-cache, must-revalidate');

$foo = json_decode($_POST['DTO']);


$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); //example data

echo json_encode($arr);

这应该让你开始。在ajax响应中,
alert(data.a)
将向“1”发出警报

您应该使用jQuery serialize()

在页面中创建一个
,其中包含
字段,其中包含要传递给服务器的值

然后使用jQuery调用服务器:

$.ajax({
  type: 'POST',
  url: url,
  data: yourForm.serialize(),
  success: success,
  dataType: dataType
});

查看Jquery表单。您可以将表包装在一个表单元素中,它将使用Ajax将其序列化

也许你可以试试这个:

$.ajax({
  type: 'POST',
  url: yourscript.php,
  data: JSON.stringify(selectedData),
  success: function(..){

  },
  contentType: "application/json"
});
在PHP文件中,从stdin读取JSON字符串,然后使用
JSON\u decode
解码JSON

$requestObject = json_decode(file_get_contents('php://input'));

你应该看看
JSON
谢谢你回复pgratton,实际上我得到的是搜索结果上面提到的字段代表一行搜索结果,我可以有多行。我需要把它们联系在一起,这样我就可以在php页面上获取并创建一个csv。然后你应该看看@Johan answer谢谢你的回复。我需要一个能解决我问题的方法。我要试试这个。简短的问题,我是否需要像?selecteddata=json.stringfy(selecteddata)那样发送它,这样它就可以在获取OK Johan时提供帮助。要尝试sameHi Johan,再次感谢您的帮助。:)我正在发布并获取它们。之前我打开了一个弹出窗口,用于编写csv文件并将其输出给用户。现在这怎么可能。我的意思是现在我正在使用ajax。@Vikassarma您需要处理来自您的sevice.php的响应。在我的示例中,它位于“handleresponse”<代码>数据是要操纵的对象。使用
json\u encode()
转换要发送的数据,我更新了我的示例a位是的,你是对的。但我想问,如何将csv文件作为可下载文件输出给用户。现在,在您的回答之后,我将获得数据,但是如何使php文件可下载给用户呢。以前我没有发布数据,而是打开window.location=script.php?数据和fputcsv来生成csv。但现在它正在通过post…但不是输出为可下载的csv…请帮助,如果你得到我。。。。