如何在AJAX访问的页面中提交表单?

时间:2011-01-05 05:15:39

标签: php ajax forms form-submit

我想弄清楚如何在AJAX访问的页面中提交表单?

以下是一些代码片段,以帮助演示我想说的内容。

HTML BODY - 这是用户会看到的:

  <html>
    <head>
     <script language="javascript" src="linktoajaxfile.js">
    </head>
    <body onLoad="gotoPage(0)">
    <div id="fillThis">
    </div>
  </body>
</html>

Ajax文件:

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;
}

数据页:

<?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链接,并打开了页面。我也试过让按钮将页面移动到另一个步骤,但$_POST变量为空。

4 个答案:

答案 0 :(得分:1)

嘿,你可以通过这个链接

http://www.ajaxlines.com/ajax/stuff/article/how_to_submit_a_form_with_ajax_in_jquery.php

如果有任何与此相关的问题,请告诉我

答案 1 :(得分:0)

我认为您的代码中存在错误。您没有在任何地方设置舞台变量。

看看:

url=url+"?stg="+phase;

可能你必须改变stg =&gt;阶段。 没有看到任何其他问题。

答案 2 :(得分:0)

嗨,您可以使用

在同一页面中显示结果或表格

form method =“POST”action =

或者如果你想使用ajax,那么在jquery中编写一个这样的函数 function call(){

$。AJAX({   类型: 'POST',
  url:'相同文件名的路径?action = submit',  //想要传递的数据   数据:”,
  成功:function(){

}
});

} //功能结束

和你的PHP代码 检查$ _GET ['action']是否存在然后执行你的函数

由于

答案 3 :(得分:0)

以下是您要查找的脚本。

<强> pageofstuffce.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.';
  }
?>

您的HTML

<html>
    <head>
        <script type="text/javascript" language="javascript" src="linktoajaxfile.js"></script>
        </head>

    <body onload="gotoPage(0)">
        <div id="fillThis">
        </div>
    </body>
</html>

用于进行Ajax调用的Javascript linktoajaxfile.js

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;
}

希望这会有所帮助!

谢谢!

侯赛因。