我已经查找了使用ajax和表单的各种解释,并将整个程序剥离到只是让表单与php交谈,但它是不合理的顽固......
表格:
<form method="get" action="">
Name:<input type="text" name="uname" id="uname"><br>';
<input type="submit" onclick="addcomment()" value="Post">
</form>
<a href="" onclick="addcomment()">Test</a>
javascript:
function addcomment()
{
if (window.XMLHttpRequest)
{ xmlhttp=new XMLHttpRequest();}
else
{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.write(xmlhttp.responseText);
}
}
xmlhttp.open("GET","test.php",true);
xmlhttp.send();
}
PHP:
<?php
echo 'test';
?>
它不传递任何信息,只应在屏幕上写'test',而是重新加载html页面,添加'get'
information(test.html?uname=)
。这可以从锚标记中正常工作,除非我在尝试表单后尝试它(即,将'get'
信息添加到页面名称中)。我确定我遗漏了一些基本的东西。你能救我吗?
谢谢。
P.S。我不能使用jquery。
答案 0 :(得分:1)
您需要从添加注释功能返回false,以告知浏览器不执行发布表单的默认操作。目前正在发生的事情是浏览器正在执行您的功能,然后立即提交表单,让xmlhttprequest没有时间执行。
答案 1 :(得分:1)
您需要阻止浏览器将表单提交到页面。这是由returning false
到脚本完成的。例如:
<form method="get" action="" onsubmit="addcomment(); return false;">
Name: <input type="text" name="uname" id="uname"><br>
<input type="submit" value="Post" />
</form>