AJAX表单只重新加载页面

时间:2013-07-11 08:26:06

标签: php javascript ajax

我已经查找了使用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。

2 个答案:

答案 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>