Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试使用AJAX&;PHP_Javascript_Php_Html_Ajax - Fatal编程技术网

Javascript 尝试使用AJAX&;PHP

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,但我一直在尝试创建一个表单,用户在表单中输入数据,单击submit,而不是刷新页面以获得结果,打开一个带有结果的模式窗口。我的理解是,我需要使用
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触发的事件的默认操作