0

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

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

我打算在数组中获取表数据,然后使用 ajax 将其发布到 php,然后它将完成其余的事情。但这怎么可能将多行数据发布到 php.ini 呢?我有以下代码用于获取正在提醒数据但不知道如何将其作为数组传递给 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});

谢谢

4

4 回答 4

1

我认为您需要使用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,  */ });

服务.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”

于 2012-06-04T13:02:25.147 回答
0

您应该使用 jQuery 序列化 ( http://api.jquery.com/serialize/ )

<form>在您的页面中创建一个包含<input>要传递给服务器的值的字段。

然后,您将使用 jQuery 调用您的服务器:

$.ajax({
  type: 'POST',
  url: url,
  data: yourForm.serialize(),
  success: success,
  dataType: dataType
});
于 2012-06-04T13:03:53.943 回答
0

查看 Jquery 表单。您可以将表格包装在一个表单元素中,然后它会使用 Ajax 将其序列化。http://jquery.malsup.com/form/

于 2012-06-04T13:05:38.613 回答
0

也许你可以试试这个:

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

  },
  contentType: "application/json"
});

在您的 PHP 文件中,从标准输入读取 JSON 字符串,并用于json_decode解码 JSON。

$requestObject = json_decode(file_get_contents('php://input'));
于 2012-06-04T13:07:40.650 回答