2011-06-16 126 views
0

我不確定當我使用AJAX向PHP頁面發送一些信息時,如果我已經完成了正確的工作,有些代碼連接到數據庫並存儲一段文本。 AJAX調用的PHP頁面必須使PHP頁面與普通的PHP頁面相比有所不同?這不起作用,我收到了404 Not Found消息?AJAX調用PHP頁面,需要幫助

這裏是一個PHP頁面:

<?php 
session_start(); 
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE); 

$replyArticleId = isset($_POST['replyArticleId']) ? $_POST['replyArticleId'] : ''; 
$replyText = isset($_POST['replyText']) ? $_POST['replyText'] : ''; 

$replySign = $_SESSION['accountId']; 

date_default_timezone_set("Europe/Stockholm"); 
$date = new DateTime(); 
$replyDate = $date->format('Y-m-d H:i:s'); 

$tableUser = DB_PREFIX . WS_DB_USER; 
$tablePost = DB_PREFIX . WS_DB_POST; 
$tableComment = DB_PREFIX . WS_DB_COMMENT; 
$tableArticle = DB_PREFIX . WS_DB_ARTICLE; 
$tableReply = DB_PREFIX . WS_DB_REPLY; 

// Add new comment 

$query1 = "INSERT INTO {$tableReply} (replyArticleId, replyText,replyUserId,   
replyDate) VALUES ('{$replyArticleId}','{$replyText}','{$replySign}', '{$replyDate}');"; 
$query2 = "UPDATE {$tableArticle} SET articleDateUpdated = NOW() WHERE articleId =  {$replyArticleId};"; 
$res = $mysqli->query($query1) or die($mysqli->error); 
$res = $mysqli->query($query2) or die($mysqli->error); 

$mysqli->close(); 

這是我用來打電話和發一些測試內容的AJAX代碼:

$.ajax({ 
url: "PAddReplyProcessAJAX.php?replyArticleId=1", 
type: "POST", 
dataType: "text", 
data: "replyText=" + "test" 
}); 



?> 
+0

檢查您使用的網址..嘗試訪問瀏覽器中的相同網址。 – KillerFish 2011-06-16 19:38:28

回答

0

真的是你想要使用的URL PAddReplyProcessAJAX.php?它是否與您正在調用ajax的頁面位於同一個目錄中?

+0

是的,它是相同的目錄 – 2011-06-16 19:39:23

+0

這是關於您的文件名和網站佈局。您的網絡服務器/文件系統是否區分大小寫,您是否在正確的情況下存檔?等等。?也許用真實的文件和目錄名稱以及兩個URL(一個用於頁面,一個用於AJAX處理程序)更新問題。 – searlea 2011-06-16 19:41:51

+0

我將文件名更改爲ajax_1.php,但仍然不起作用? – 2011-06-16 19:56:14

1

它看起來像JavaScript沒有調用你認爲它的PHP腳本。

打開FireBug控制檯(或Chrome開發人員工具)並查看獲取查詢的確切URL。

嘗試設置腳本URL的絕對路徑,以查看是否有幫助。根據您的URL結構,相對路徑可能會有所不同。

作爲備註,您的PHP腳本包含SQL注入漏洞。確保你正確地轉義值或使用綁定參數。無論出於何種原因,您可能並不關心應用程序中的安全性,但只要有人輸入錯誤的字符(如單引號),它就會崩潰。

+0

Interresting,「它看起來像JavaScript沒有調用你認爲它的PHP腳本。」但是,你能簡單解釋一下你的意思嗎? – 2011-06-16 19:53:35

+0

「確保您正確地轉義值或使用綁定的參數。」這是如何完成的? – 2011-06-16 20:02:15

1

你應該在這條線使用$ _GET(PHP網頁)

$replyArticleId = isset($_POST['replyArticleId']) ? $_POST['replyArticleId'] : ''; 

$replyArticleId = isset($_GET['replyArticleId']) ? $_GET['replyArticleId'] : ''; 

你AJAX類型也應該是「GET」

,如果你想通過你需要一個POST數據傳遞有效的變量數據。

檢查此鏈接http://api.jquery.com/jQuery.post/

你還必須確保該目標文件PHP是存在的。檢查文件名和文件位置。

+0

我以前測試過GET,但那沒用! 「如果你想傳遞一個POST數據,你需要傳遞一個有效的變量數據。」 ??這對POST無效。我想使用POST,因爲內容來自表單。 – 2011-06-16 19:51:15

+0

@ 3D-kreativ,如果你想傳遞表單數據,那麼你需要序列化表單。你可以使用數據:$('#formID')。serialize(), – froditus 2011-06-16 19:56:42