php POST响应

时间:2010-03-13 21:18:41

标签: php javascript jquery

我正在对要在浏览器中呈现的另一个 php文件进行POST。 jquery post函数不会重定向到另一个页面。它希望app-display.php文件将数据返回给它。看看代码。

echo    '<div class="showcase_URL"><a class="purl" name="'.$row->num.'" href="#">PROJECT URL</a></div>';

到目前为止我在javascript中所拥有的是:

$(".showcase_URL a").click(function() {
  //alert($(this).attr("name"));
    var number = $(this).attr("name");      
    $.post(
    "app-display.php", 
    {app: number}, 
    function(data){
        top.location.href = 'app-display.php';  
        });
});

我在app-display.php中的内容:

$query = 'SELECT num, title, thumb_url, url, type, cat, dated, details FROM app WHERE `num` = "$_POST[app]"';

但它目前给了我一个没有app-display.php内容的页面。页面的所有其他片段都在加载:页眉,页脚等。 我得到的PHP响应(在Firebug中)是页面的正常html。

我应该怎么做?

3 个答案:

答案 0 :(得分:1)

只需使用普通的<form action="app-display.php">这样就不需要获取数据了。

答案 1 :(得分:1)

在回调中设置top.location.href是问题 - 这是重定向。 $.post()正确地进行POST,一旦完成,就会触发它的回调函数,返回data参数中的任何结果。通过在回调中重定向,你将所有这些丢弃并向app-display.php发出直接的GET请求。

如果你真的想要这是一个AJAX电话&amp;没有传递到新页面,更改回调函数以使用data参数执行某些操作而不是重定向。像function(data) { $('#some-div').html(data); }之类的东西应该将响应转储到某个div中。

答案 2 :(得分:0)

除了您展示的只定义变量的行外,您在PHP页面中还有什么内容。如果您只是在其中放入一些原始文本,它会显示吗?毕竟我猜你的查询行是错误的,它应该是$query = 'SELECT num, title, thumb_url, url, type, cat, dated, details FROM app WHERE num = '.$_POST["app"];