【问题标题】:Passing javascript array in the url在 url 中传递 javascript 数组
【发布时间】:2014-05-19 00:49:34
【问题描述】:

如何在 javascript 的 url 中传递一个数组?

我试过这个:

http://codeigniter/index.php/AssistanceMonitoringModule/assistanceMonitoring/getReport?remarks="+stat+"&sortBy="+sortBy+"&fromDate="+fromDate+"&toDate="+toDate+"&area="+area;

其中注释是 PHP 中作为数组捕获的注释,statremarks 中提供的 javascript 数组。有什么解决办法吗?

每当我使用$this->input->get_post('remarks')(因为我使用codeigniter)在PHP中捕获remarks时,我得到一个错误'为foreach()提供的参数无效'

感谢您的帮助。 :)

【问题讨论】:

  • get_post 暗示您期待 POST 方法?无论如何,您可以像这样为 php 编码一个数组:array[]=x&array[]=y...等等。

标签: javascript php arrays codeigniter


【解决方案1】:

您可以使用JSON.stringify 将数组编码为JSON,并使用json_decode 在PHP 中对其进行解码。不要忘记使用encodeURIComponent 作为 URL 中的值,否则您可能无法获得您期望的 URL。

【讨论】:

  • 我已经尝试过另一种解决方案,但无论如何感谢。 :) 我的解决方案,将字符串分解成一个数组。 :P 有效但不可靠。
【解决方案2】:

像这样试试。

http://codeigniter/index.php/AssistanceMonitoringModule/assistanceMonitoring/getReport?get[remarks]="+stat+"&get[sortBy]="+sortBy+"&get[fromDate]="+fromDate+"&get[toDate]="+toDate+"&get[area]="+area;

foreach($_GET['get'] as $get){
 ....
}

【讨论】:

  • 这不是 OP 想要的,你提出的建议在任何情况下都是不必要的。如果有人想遍历 URL 中的所有查询参数,他们可以执行 foreach($_GET as $value){。不需要只使用一个查询参数。
  • 是的,你是对的,但仍然回答了主要问题:D。这个问题有很多方法。
  • 并非如此。 OP 想要将remark 的值作为数组发送。 IE。 stat 是一个数组。他不想让每个参数都成为数组的元素。
猜你喜欢
  • 2012-05-10
  • 2016-01-24
  • 1970-01-01
  • 1970-01-01
  • 2013-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-09
相关资源
最近更新 更多