Отправка формы в php файле, доступ к которому имеет Ajax?

Я пытаюсь выяснить, как отправить форму на странице, к которой обращается Ajax?

Вот некоторые фрагменты кода, чтобы помочь продемонстрировать то, что я пытаюсь сказать.

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

СТРАНИЦА ДАННЫХ

<?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 пуста... я в растерянности, так у кого-нибудь есть какие-нибудь идеи?

4 ответа

Решение

эй, ты можешь пройти по этой ссылке

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

дайте мне знать, если какие-либо вопросы, касающиеся этого

Я думаю, что в вашем коде есть ошибка. Вы не устанавливаете переменную этапа нигде.

Смотреть на:

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

Возможно, вам придется изменить stg => stage. Не вижу никаких других проблем с этим.

Вот сценарии, которые вы ищете.

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>

Javascript для создания Ajax Calls 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;
}

Надеюсь, это поможет!

Спасибо!

Хуссейн.

Привет за отображение результата или формы на той же странице, которую вы можете использовать

form method ="POST" action =

или если вы хотите использовать ajax, то напишите одну функцию в jquery что-то вроде вызова этой функции () {

$.ajax ({тип: 'POST',
url: 'путь к тому же имени файла?action=submit', // data вы хотите передать data: ',
success: function () {

}
});

} // функция заканчивается

и ваш php-код проверяет, есть ли $_GET['action'], затем выполняйте функцию ur

Спасибо

Другие вопросы по тегам