【问题标题】:Jquery post to php file works but can't return the data echoed in phpJquery 发布到 php 文件有效,但无法返回在 php 中回显的数据
【发布时间】:2011-05-06 09:34:52
【问题描述】:

我可以使用 jquery 发布数据(使用该 php 文件中的 mysql 插入检查,它确实插入,所以我 100% 确定发布有效),即使在 php 文件中回显了某些内容,我也可以' t 似乎使用我的数据函数将其返回到页面(还检查它是否正常回显)...我知道它应该可以工作,有什么想法为什么它不会?

$('#formbutton').click(function() {
var user = $('#nameinput').val();
$.post("usercount.php", {
    username: user
}, function(data) {
    alert("Data Loaded: " + data);
});
});

【问题讨论】:

  • javascript 看起来非常有效,你能提供一个小代码段来显示你的 php 文件如何回显数据吗?
  • 发布的数据到 usercount.php,然后 $_POST['username'] 到一个 php 类: if ($visitors_online->count_users() == 1) { echo ", There is " . $visitors_online->count_users() 。 “访客在线”; } 像这样,这就是事情何时/如何回显
  • 奇怪的是 jquery 甚至没有单独的 alert("Data Loaded")

标签: php jquery http-post


【解决方案1】:

如果插入了数据,那么请求应该没有任何问题。我的猜测是插入数据后发生致命错误,从而阻止了输出。您应该检查您的 PHP 日志以获取线索。

您还应该在 Firebug 或类似工具的“网络”面板中检查请求的响应代码。如果响应失败,$.post 中的回调函数将不会执行。尝试改用 $.ajax 函数,并提供成功和错误回调。

【讨论】:

  • 请注意,为了接收服务器响应,帖子需要转到与页面相同域的 URL。否则会发送请求,但浏览器会忽略响应。
【解决方案2】:

一切似乎都是正确的(或者至少我现在看不出有什么问题)。

使用firebug 中的网络面板或 chrome 开发人员工具检查 ajax 调用的请求和响应,看看它们是否正确(以及响应是否带有 http 状态代码 200)。还要检查 javascript 控制台,在这里或那里放置一个断点并使用它(这很有趣:D)

【讨论】:

    猜你喜欢
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 2011-09-30
    • 2015-05-09
    • 2021-01-24
    • 2016-03-18
    相关资源
    最近更新 更多