我想弄清楚如何在被Ajax访问的页面中提交表单?在Ajax访问的php文件中提交表单?
这里有一些代码片段来帮助证明我想说的。
HTML BODY - 这是用户将看到的内容。
<html>
<head>
<script language="javascript" src="linktoajaxfile.js">
</head>
<body onLoad="gotoPage(0)">
<div id="fillThis">
</div>
</body>
</html>
AJAX FILE
var xmlhttp
function gotoPage(phase)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
{
alert ("Your browser does not support AJAX!");
return;
}
var url="pageofstuffce.php";
url=url+"?stg="+phase;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("fillThis").innerHTML=xmlhttp.responseText;
}
}
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{
// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
DATA
<?php
$stage = $_GET['stg'];
if($stage == 0)
{
echo '<a onClick="gotoPage(1)">click me</a>';
}
elseif($stage == 1)
{
<form>
<input type="text" name="name">
<input type="submit" name="submit">
</form>
}
elseif(somehow can reach here)
{
show data from form.
}
?>
页谁能也许帮我把过去的形式,并在同一页面中显示的数据? 另外,我环顾四周,我不认为周围有什么我需要...纠正我,如果我错了,但:) :)
在此先感谢,我希望我没有把太多的细节:) Dronnoc
编辑
忘了提我已经试过;我已经尝试将表单提交给自己(同一个文件),并且销毁了ajax链接,并打开了页面。我也尝试只是将按钮移动到另一个步骤的页面,但$ _POST变量是空的...我无所适从,其他人有什么想法吗?
你能否将问题隔离一点? “pageofstuffce.php”是否打开?它回应/返回你的期望?在那里添加一些警报,手动转到'pageofstuffce.php'。精确定位一点,所以我们可以帮助更好 – 2011-01-05 06:16:13
是啊,对不起,第一次在这里发布,我仍然得到的东西......无论如何,无论如何,它是做我所期望的,直到提交表单。通常,我要提交表单的方法是将表单操作链接回同一个文件,并在文件的开始处有一个'if($ _ POST ['submit'])'子句,它将从那里..现在不起作用,因为在这样做的时候,它会将'pageofstuffce.php'加载到浏览器中,而不是用ajax调用它。 – 2011-01-05 06:20:13
有没有一种方式可以提交表单,然后可以从页面访问数据,而无需在浏览器中加载文件? – 2011-01-05 06:20:41