Отправка формы в 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
Спасибо