我正在尝试同时使用 AJAX、HTML 和 PHP 来为用户提供无缝体验。我现在无法将变量传递给 PHP 表单。我的方法有点复杂,我不确定是否有更简单的方法,因为这是我第一次尝试 AJAX。
详细解释:
<div class="block" id="articles"></div>
我有这个部门,它加载细节并加载文章。在这个部门内部,我试图让用户添加与文章相关的评论。
function viewDets(str) {
if(str == "") {
document.getElementById("articles").innerHTML = "";
return;
}
if(window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("articles").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "viewDets.php?q=" + str, true);
xmlhttp.send();
}
使用它会将变量传递给 viewDets,然后添加另一个容器:
while($row = mysql_fetch_array($result)) {
$count++;
$taskComments = $row['Annotation'];
$userName = $row['Username'];
$timeStamp = $row['Time'];
echo "Comments";
echo "<p class=\"meta\">$count. $taskComments ($userName) -- $timeStamp</p>";
}
echo "</div></div></div></div></div></div>
<form name=\"inputCom\" method=\"get\">
<div class=\"four column\">
<div class=\"column_content\" id=\"commentInsert\">
<label>Enter Comment</label>
<input type=\"text\" id=\"comment\"value=\"\"></input>
<input type=\"hidden\" id=\"Uname\" value=\"$user\"></input>
<input type=\"hidden\" id = \"taskID\" name=\"taskID\" value=\"$q\" />
<button type=\"button\" id = \"commentSub\" onClick=\"insertComm(comment, Uname, taskID)\" />Enter Comment</button>
</div>
</div>
</form>";
这个部门的名称是commentInsert,我已经设置了AJAX,以便在点击时,它应该将变量推送到一个PHP函数,该函数插入我的数据库以获取评论。
我遇到的问题是我无法将注释传递给该 PHP 函数。
function insertComm(str, uname, id) {
insertC();
if(str == "") {
document.getElementById("commentInsert").innerHTML = "";
return;
}
if(window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("commentInsert").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "subCom.php?q=" + str, true);
xmlhttp.send();
};
我一直在尝试调用 document.getElementByID 之类的东西并将该函数称为 insertC(); 但是不管有没有 insertC() 函数,我仍然在将 Javascript 函数中的 3 个变量传递给 PHP 函数时遇到问题,我只用一个变量进行了尝试,但仍然无法让它通过。
任何帮助将不胜感激。对不起,很长的帖子。