php - jQuery移动ajax登录表单例份验证

标签 php jquery ajax forms jquery-mobile

我知道我已经问过类似的问题,但现在当我使用 jQuery Mobile 时我无法弄清楚。所以我有这个表格:

<div data-role="page" data-theme="a" id="login_page">
        <div data-role="header" data-position="fixed">
            <h1>****</h1>
        </div>
        <div data-role="content">
            <form id="login_form" method="POST" data-ajax="false">
            <label for="basic">Username:</label>
            <input type="text" name="name" id="username" value=""/>
            <label for="basic">Password:</label>
            <input type="password" name="password" id="password" value=""/>
            <input type="submit" value="Login" id="login" name="login"/>
            </form>
        </div>
        <div data-role="footer" data-position="fixed">
            <div data-role="navbar"></div>
        </div>
</div>

我需要将用户名和密码提交给php脚本,php在其中回复并发送“成功”或“失败”。这是 php:

<?php
session_start();

$username = $_POST["name"];
$password = $_POST["password"];

include('mysql_connection.php');
mysql_select_db("jzperson_imesUsers", $con);

$res1 = mysql_query("SELECT * FROM temp_login WHERE username='$username' AND password='$password'");
$count=mysql_num_rows($res1);

if($count==1){
    echo "success";
}else{
    echo "failed";
}
?>

为了完成这一切,我想使用这个脚本:

$(document).ready(function() {
        $("form").submit(function(){
            $.mobile.showPageLoadingMsg();

            $.ajax({
                url: "http://imes.jzpersonal.com/login_control.php",
                type: "POST",
                dataType: "jsonp",
                jsonp: "jsoncallback",
                data: $("form#login_form").serialize(),
                success: function( response ){
                    $.mobile.changePage( "http://imes.jzpersonal.com/user_panel.html");
                }
            });
            return false;
        });
    });

但我无法让它工作,我知道我一定有错误,我只是找不到它们,或者更好的方法来做到这一点。预先感谢您的帮助。

最佳答案

你的错误很少。

我。 JSONP 只允许输入:“GET”,但您可以将其完全删除。

这是 JSONP $.ajax 调用的工作示例:

   $.ajax({url: server_url,
        data: save_data,
        dataType: "jsonp",
        jsonpCallback: 'successCallback',
        async: true,
        beforeSend: function() {
            $.mobile.showPageLoadingMsg(true);
        },
        complete: function() {
            $.mobile.hidePageLoadingMsg();
        },
        success: function (result) {
            alert(result);
        },
        error: function (request,error) {
            alert(error);
        }, 
       successCallback:function(){

        }
    });

二.现在最重要的是,因为您使用的是 JSON/JSONP,所以不能只在 PHP 中使用 echo "SOME_STRING"。首先,您必须使用 json_encode() 函数正确格式化结果数据,并且需要将其包装在 jsonpCallback 函数中:

echo $_GET['callback'] . '(' . "{'some' : 'example'}" . ')';

或者:

echo $_GET['callback'] . '(' . ###your_serialized_json_output### . ')';

三.最后,您需要修改您的服务器,以便它可以处理 JSONP 调用。

在这里您可以找到更多相关信息:

http://www.geekality.net/2010/06/27/php-how-to-easily-provide-json-and-jsonp/

关于php - jQuery移动ajax登录表单例份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13914809/

相关文章:

javascript - 文档底部编写的代码总是在 DOM 准备好之后执行吗?

javascript - 如何将 ViewModel 中的数据发布到 Controller 方法中?

php - Codeigniter 加载不同的数据库配置

php 从文本区域获取值时出错

javascript - 在同步 ajax 调用期间将鼠标指针设置为忙碌

javascript - jQuery 在另一个元素上触发 ("mouseenter"时从元素获取文本

javascript - 如何减少 XMLHttpRequest 时滞?

javascript - $.ajax (jQuery v1.9.1) 无法在 iPad 上运行

php - 需要帮忙!我无法使用 codeigniter 在 oracle 11g 中连接我的程序

Java OpenSSL 验证和获取公钥