Javascript 尝试使用AJAX&;PHP
我很少使用AJAX,但我一直在尝试创建一个表单,用户在表单中输入数据,单击submit,而不是刷新页面以获得结果,打开一个带有结果的模式窗口。我的理解是,我需要使用Javascript 尝试使用AJAX&;PHP,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我很少使用AJAX,但我一直在尝试创建一个表单,用户在表单中输入数据,单击submit,而不是刷新页面以获得结果,打开一个带有结果的模式窗口。我的理解是,我需要使用AJAX来实现这一点 以下是迄今为止我的代码。请注意,我只是想先让AJAX调用工作,稍后我会担心模式窗口 目前,点击submit按钮所能实现的只是页面执行表单操作并转到testauthcall.php,其中我的结果是echo'd在空白页面上(我认为return false;应该停止页面加载?) HTML文件:testauth.php
AJAX
来实现这一点
以下是迄今为止我的代码。请注意,我只是想先让AJAX
调用工作,稍后我会担心模式窗口
目前,点击submit按钮所能实现的只是页面执行表单操作并转到testauthcall.php
,其中我的结果是echo'd
在空白页面上(我认为return false;
应该停止页面加载?)
HTML文件:testauth.php
<form id="myForm" action="testauthcall.php" method="post">
Username: <input type="text" name="user" />
Password: <input type="text" name="pass" />
<input type="submit" value="Test Authentication" />
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>
<script src="http://malsup.github.com/jquery.form.js"></script>
<script type="text/javascript">
var frm = $('#myForm');
frm.submit(function () {
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize(),
success: function (data) {
alert('ok');
}
});
return false;
});
<script>
用户名:
密码:
Javascript文件:testauth.php
<form id="myForm" action="testauthcall.php" method="post">
Username: <input type="text" name="user" />
Password: <input type="text" name="pass" />
<input type="submit" value="Test Authentication" />
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>
<script src="http://malsup.github.com/jquery.form.js"></script>
<script type="text/javascript">
var frm = $('#myForm');
frm.submit(function () {
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize(),
success: function (data) {
alert('ok');
}
});
return false;
});
<script>
var frm=$(“#myForm”);
提交财务报表(功能(){
$.ajax({
类型:frm.attr('method'),
url:frm.attr('action'),
数据:frm.serialize(),
成功:功能(数据){
警报(“正常”);
}
});
返回false;
});
PHP文件:testauthcall.PHP
require_once('variables/radius.class.php');
if ((isset($_POST['user'])) && ('' != trim($_POST['user'])))
{
$radius = new Radius('xxx.xxx.xxx.xx', 'xxxxxxxxxx');
if ($radius->AccessRequest($_POST['user'], $_POST['pass']))
{
$authresult = "<strong>Authentication accepted.</strong>";
echo $authresult;
}
else
{
$authresult = "<strong>Authentication rejected.</strong>";
echo $authresult;
}
}
require_once('variables/radius.class.php');
如果((isset($\u POST['user'])和(“”!=修剪($\u POST['user']))
{
$radius=新半径('xxx.xxx.xxx.xx','xxxxxxxxx');
如果($radius->AccessRequest($\u POST['user'],$\u POST['pass']))
{
$authresult=“已接受身份验证。”;
回显结果;
}
其他的
{
$authresult=“身份验证被拒绝。”;
回显结果;
}
}
所以您的问题是页面正在重新加载,即使它不应该重新加载?我假设您正在使用jQuery?请尝试像这样编写表单提交处理程序:
frm.submit(function (e) {
if (e) {e.preventDefault()};
//...
});
就我所记得的,只有当您以老式的方式附加处理程序时,返回false才有效,在jQuery中,您必须显式地抑制表单submit触发的事件的默认操作