【问题标题】:jQuery serialize issue with php foreachphp foreach的jQuery序列化问题
【发布时间】:2011-05-20 11:31:19
【问题描述】:
$("#doStatus").click(function()
{
var serialized = $("#formStatus").serialize() 
 $.get("<?echo $site['url'];?>modules/yobilab/tuitting_core/classes/doStatusBox.php", serialized);
window.setTimeout('location.reload()', 1000);
return false;
});

此代码将返回如下内容:

tuitting=test&f%5B%5D=2&f%5B%5D=4&f%5B%5D=8&t%5B%5D=2&t%5B%5D=3&t%5B%5D=4

其中tutting(第一个值)是textarea的值,那么我们有:

-f 这是一些具有相同名称但值不同的复选框的名称

-t 其他复选框,同名,不同值

您可能会看到“f”和“t”的序列化函数返回奇怪的值,但它们应该只是简单的数字,例如 tutting=test&f=1&f=3&t=9&t=10

现在当 ajax 调用 doStatusBox.php 文件时没有任何反应。

doStatusBox.php 文件是由一个简单的 foreach php 循环生成的。

它将采用以下变量:

$_GET['tuitting']
$_GET['t']
$_GET['f']

Foreach `$_GET['t'] 和 $_GET['f'] 循环会将相对值插入到数据库中。

这根本不起作用。 php foreach 无法识别 jQuery 序列化函数给出的结果,并且不做任何事情。

有什么问题?

我应该使用另一个函数而不是 foreach 吗?

还是问题出在jQuery序列化函数上?

请帮助我。 `

【问题讨论】:

  • 您能否从页面中发布一些标记以及 php 脚本中 $_GET 的 var_dump...
  • 你能发布一个 $_GET 的 var_dump 吗?
  • Ciao Nicola..che cosaèvar_dump?什么是 var_dump?

标签: php jquery ajax serialization


【解决方案1】:

由于我们看不到您的 HTML 代码,我无法确定问题所在,但我怀疑这是两个问题之一:

  1. (很可能)- 您的复选框字段需要在名称后有 []。示例:名称="t[]"。如果您的所有复选框都是 name="t",那么当发布多个复选框时,PHP 只会看到其中一个。但是,如果您在名称末尾加上括号,PHP 会将值的集合识别为可以循环遍历的数组。

  2. (不太可能)- 接收此数据的 PHP 脚本应在数据上运行 urldecode()。示例:$tutting = urldecode($_GET['tutting']);

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2011-07-22
    • 2016-04-26
    • 1970-01-01
    • 2011-11-14
    • 2023-04-09
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多