2011-06-16 124 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