Php 如何在AJAX访问的页面中提交表单?
我试图弄清楚如何在AJAX访问的页面中提交表单 下面是一些代码片段,帮助演示我要说的内容 HTML正文-这是用户将看到的内容:Php 如何在AJAX访问的页面中提交表单?,php,ajax,forms,form-submit,Php,Ajax,Forms,Form Submit,我试图弄清楚如何在AJAX访问的页面中提交表单 下面是一些代码片段,帮助演示我要说的内容 HTML正文-这是用户将看到的内容: <html> <head> <script language="javascript" src="linktoajaxfile.js"> </head> <body onLoad="gotoPage(0)"> <div id="fillThis">
<html>
<head>
<script language="javascript" src="linktoajaxfile.js">
</head>
<body onLoad="gotoPage(0)">
<div id="fillThis">
</div>
</body>
</html>
数据页:
<?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.
}
?>
如何通过表单并在同一页面中显示数据
我已经尝试将表单提交给它自己(同一个文件),这破坏了AJAX链接,并打开了页面。我也尝试过让按钮将页面移动到另一个步骤,但是
$\u POST
变量是空的。我认为您的代码中有一个bug。您没有在任何地方设置阶段变量
看看:
url=url+"?stg="+phase;
可能您必须更改stg=>stage。
没有发现任何其他问题。您好,在您可以使用的同一页面中显示结果或表单 form method=“POST”操作= 或者,如果您想使用ajax,那么在jquery中编写一个函数,如下所示 函数调用(){ $.ajax({ 类型:'POST',
url:“相同文件名的路径?操作=提交”, //你想传递的数据 数据:',
成功:函数(){ }
})) }//功能结束 和你的php代码 检查是否存在$\u GET['action'],然后执行ur函数
谢谢嘿,你可以浏览这个链接
如果有任何与此相关的问题,请告诉我这里是您正在寻找的脚本 pageOfStufce.php
<?php
$stage = $_GET['stg'];
if($stage == 0)
{
echo '<a onClick="gotoPage(1)">click me</a>';
}
elseif($stage == 1)
{
echo '<form>
<input type="text" name="name">
<input type="submit" name="submit">
</form>';
}
else
{
echo 'show data from form.';
}
?>
希望这会有帮助
谢谢
侯赛因。是的,对不起,我正在使用旧代码,并试图为代码片段进行修复。。再检查一次,它能工作。你能不能弄清楚你卡在哪里了。根据我的理解,你可以看到形式,即stage=1。然后你提交表格,接下来会发生什么?从代码看,似乎整个页面都重新加载了?这就是问题所在吗?基本上是这样。我只是想知道如何在调用Ajax的页面中提交表单和显示数据。让我重新表述一下——我想知道如何在Ajax调用的页面中提交表单,并在不丢失Ajax连接的情况下以相同的表单显示表单?这有意义吗?好的,那就用你的表格试试这个吧。这实际上将调用方法gotoPage(),而无需在单击submit时重新加载页面。您甚至可以从那里访问输入字段,如document.getElementByName(“名称”)。value您可以进一步隔离问题吗?php的
页面是否打开?它是否响应/返回您的期望?在其中添加一些警报,手动转到pageoftuffce.php
。精确一点,这样我们可以帮助更好耶,对不起,第一次在这里发帖,我还是掌握了窍门。。无论如何,是的,它做了我期望它做的,直到提交表格。通常我提交表单的方法是将表单操作链接回同一个文件,并在文件的开头有一个if($\u POST['submit'])
子句,然后再继续。。现在不行了,因为这样做,它会将页面加载到浏览器中,而不是用ajax调用它。有没有一种方法可以提交表单,然后从页面访问数据,而不必在浏览器中加载文件?嘿,Sanil,谢谢你,但我从来没有见过jQuery,更不用说写剧本了。。你认为你可以给我一个链接,我可以从中学习,或者做一个脚本,我可以更好地理解请?感谢您是否希望使用ajax在同一页面中显示结果?是的,但这可以在从ajax本身调用的页面中完成吗?是的,在您的提交按钮上调用一个js函数,该函数将通过ajax调用其他文件,如前所述……谢谢。这是可行的,但仅当您查看加载到浏览器中的实际文件时;如果文件是通过Ajax调用的,那么尝试这样做,它似乎不起作用。你能更深入地解释一下问题是什么吗?我正在通过Ajax调用一个文件,在调用的文件中,有一个表单。我希望能够以这种形式提交数据,并访问数据,而无需转到其他页面。
<?php
$stage = $_GET['stg'];
if($stage == 0)
{
echo '<a onClick="gotoPage(1)">click me</a>';
}
elseif($stage == 1)
{
echo '<form>
<input type="text" name="name">
<input type="submit" name="submit">
</form>';
}
else
{
echo 'show data from form.';
}
?>
<html>
<head>
<script type="text/javascript" language="javascript" src="linktoajaxfile.js"></script>
</head>
<body onload="gotoPage(0)">
<div id="fillThis">
</div>
</body>
</html>
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;
}