我正在尝试使用 ajax php 和 mysql 为网站创建评论系统。为此,我想将单击以上传评论(将设置为文章名称)的按钮的 id 发送到 sql 数据库(以及评论和其他一些东西......)
我目前拥有的系统相当奇怪..如果我将它复制到 jsFiddle 它并链接到我服务器上正确的 php 文件,它工作正常,按钮的 id 被上传到数据库。但是如果我上传与我的网站完全相同的东西不起作用......这就是我所拥有的:
html格式:
<form id="addCommentForm">
<input type="email" name="email" onchange="checkEmail();" id="email" /> </br>
<div>
<p id="emailerror"> </p>
</div> </br>
<input type="text" name="username" id="username" /> </br>
<input type="text" name="content" id="content" /> </br>
<input type="Button" value="submit" id="Test" onclick="commentSend(this.id);return false;"/>
</form>
javascript(外部):
function commentSend(clicked_id)
{
var email = document.getElementById("email").value //gets the user's email
var username = document.getElementById("username").value //gets the user's username
var content = document.getElementById("content").value //gets the comment content
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
};
xmlhttp.open("GET","commentUpload.php?email=" + email + "&username=" + username + "&content=" + content + "&articleName="+ clicked_id,true);
xmlhttp.send();
return false;
}
和PHP:
<?php
$con = mysql_connect("myserver","myusername","mypassword");
mysql_select_db("mydatabase", $con);
$articleName = mysql_real_escape_string($_GET['articleName']);
$email = mysql_real_escape_string($_GET['email']);
$username = mysql_real_escape_string($_GET['username']);
$content = mysql_real_escape_string($_GET['content']);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$query = "INSERT INTO Comments (id, article, email, name, body) VALUES (NULL, '" . $articleName ."', '" . $email ."', '" . $username . "', '". $content . "')";
mysql_query($query);
mysql_close($con);
?>
我唯一能想到的是将变量 this.id 传递给外部 javascript 文件时出现一些错误,因为这是唯一没有上传到数据库的值......
任何人有任何想法!?