2010-03-13 73 views
1

我正在POST一個另一個 php文件,我想要在瀏覽器中呈現。 jquery post函數不會重定向到另一個頁面。它期望app-display.php文件將數據返回給它。看看代碼。php POST回覆

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。

我應該怎麼做?

+0

你能解釋「很清楚,使用jquery POST不會工作,因爲它通過AJAX工作」?我很困惑...你可以發佈使用jQuery並顯示你想要的頁面。例如,當您在SO上進行投票時,您會發布並獲得投票總數作爲響應並使用它來更新頁面值。 – 2010-03-13 21:25:16

+0

@amit:發佈的查詢對SQL注入打開。希望它是說明性的,並不代表你在實際代碼中擁有的東西。另外,目前的設計還不是很清楚。所有文件的名稱及其更多內容(完整但簡潔;示例​​代碼應該是最小的測試用例)應該有助於澄清。 – outis 2010-03-13 22:32:20

回答

1

只需使用普通的老<form action="app-display.php">這樣你就不需要找回數據。

0

除了你剛剛定義的一行變量,你的PHP頁面還有什麼?它是否工作,如果你只是把一些原始文本,它會顯示?畢竟我猜你的查詢行是錯誤的,它應該讀$query = 'SELECT num, title, thumb_url, url, type, cat, dated, details FROM app WHERE num = '.$_POST["app"];

1

在你的回調中設置top.location.href是問題 - 這是一個重定向。 $.post()正確發佈,一旦完成,它會觸發它的回調函數,並返回data參數中的任何結果。通過在回調中重定向,您將所有這些都扔掉,並向app-display.php發出直接的GET請求。

如果你真的意味着這是一個AJAX調用&未通關到一個新的頁面,更改回調函數做的data參數,而不是重定向的東西。像function(data) { $('#some-div').html(data); }之類的東西應該將響應轉儲到某個div中。