【问题标题】:Passing arrays from AJAX to HTML to PHP - Is this Possible?将数组从 AJAX 传递到 HTML 到 PHP - 这可能吗?
【发布时间】:2013-05-20 01:43:46
【问题描述】:

我有一个 AJAX 调用将数组返回到 PHP-HTML 页面。


以下是一些代码块:

Javascript:

“注意:get_data.php返回一个HTML字符串,我想把它存储在一个数组中。”

var param_array = new Array();
$.post('get_data.php', { id: id }, function(data))
{
    param_array.push(data);
    $('#hidden_input').val(param_array);
}

HTML:

<form action='my_function' method='post'>
    <input type='hidden' id='hidden_input' name='array_from_ajax'>
    <input type='submit' name='btn_submit'>
</form>

PHP - CodeIgniter:

my_function()
{
    $param_array = $this->input->post('array_from_ajax');
    print_r($param_array); // Will this work? will $param_array contain the value?
}

问题:

  1. 是否可以返回一个数组值并将其插入到 HTML 页面中?
  2. JavaScript 数组和 PHP 数组一样吗?
  3. 最后,我在 PHP 中的$param_array 会包含从 AJAX 调用传递的值吗?

【问题讨论】:

  • 你不能只做一个测试并把错误告诉我们吗?
  • 实际上,实际来源有点“很多行”,我只是对其进行了总结,所以我想问一下,在我进行重大更改之前,我认为这个算法是否可行。 :)
  • 啊好的。我会坚持使用 JSON 编码的答案,这是处理此类通信的正常方式。

标签: php ajax arrays codeigniter return-value


【解决方案1】:

JavaScript 和 PHP 只能通过 HTTP 并且只能通过字符串进行通信(除非我猜你可以使用 SOAP,如果这可能的话)。也就是说它们之间的数据结构不兼容,所以一个JavaScript数组一个PHP数组。同样,您不能将输入值设置为 JavaScript 数组。

处理此问题的最佳方法可能是在将数组设置为输入值之前对数组进行 JSON 编码。 PHP 可以轻松地将 JSON 解码为它可以使用的数据结构。

【讨论】:

  • 那么现在可以有这样的事吗?喜欢json_encode(data); $('#hidden_input').val(json_encode);? php 现在会得到数组吗?对不起,我不熟悉 JSON :)
  • @PawCabelin 使用$("#hidden_input").val(JSON.stringify(data));
  • @ExplosionPills 谢谢!,我只会搜索一些关于 JSON.stringify 的教程。感谢您的帮助。
猜你喜欢
  • 2023-03-13
  • 2012-06-09
  • 2013-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-31
  • 1970-01-01
  • 2020-12-12
相关资源
最近更新 更多