在过去的 5 个小时里,我一直在试图避免发布此内容,但我只是找不到此代码的错误所在。我希望在不离开 HTML 页面的情况下向电子邮件发送评论,而只是在表单底部添加 PHP 回显。这是我的 HTML:
<form name="form1" method="post" enctype="multipart/form-data" action="javascript:submitForm();">
<table>
<tr>
<td valign="top">
<label for="first_name">First Name *</label>
</td>
<td valign="top">
<input type="text" name="first_name" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="last_name">Last Name *</label>
</td>
<tr>
<td valign="top">
<label for="email">Email Address *</label>
</td>
<td valign="top">
<input type="text" name="email" maxlength="80" size="30">
</td>
</tr>
<tr>
<td valign="top">
<input type="text" name="telephone" maxlength="30" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="comments">Comments *</label>
</td>
<td valign="top">
<textarea name="comments" maxlength="1000" cols="25" rows="6"></textarea>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center">
<input type="submit" value="Submit">
</td>
</tr>
</table>
</form>
<div id="text"> </div>
我的 AJAX:
function submitForm(str)
{
if (str=="")
{
document.getElementById("text").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("text").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","contact.php?q="+str,true);
xmlhttp.send();
}
我可以确认我的 php 工作正常,因为当我将表单操作更改为“contact.php”时,它工作得很好。问题是当我尝试使用 AJAX 获取 php 时,firefox 开发人员工具确认使用以下函数可以正常调用 contact.php:submitForm() 但它只是无法正常工作。有人可以帮忙吗?