繁体   English   中英

使用jQuery将错误实时发送到PHP页面

[英]Send errors to PHP page in real time with jQuery

我在php中构建了一个表单,该表单将输入值发送到jQuery页面,然后将信息发送到另一个php页面,以将值插入到数据库中。

问题是

发生错误时,假设用户名存在,我需要能够将消息从php页面发送回原始表单,并使其实时显示。 有关如何执行此操作的任何想法?

这是jQuery ,用于处理从表单到插入数据库的php页面的提交。

// Handle account updates
$('#save_account').click(function() { 
    var log_token = $('#log_token').val();  
    var user_name = $('#user_name').val();  
    var user_pass = $('#user_pass').val();  
    $.post("php/includes/update_account.php", {
        log_token: log_token,
        user_name: user_name,
        user_pass: user_pass
    });
});

是将值插入数据库的PHP

$log_token = $_POST['log_token'];
$user_name = $_POST['user_name'];
$user_pass = $_POST['user_pass'];

$db = db_open();
$query = "SELECT user_name FROM users WHERE user_name='$user_name'";
$result = db_query($db, $query);
$result = db_num_rows($result);
if (!$result) {
    $query = "UPDATE users SET user_name='$user_name', user_pass='$user_pass' 
        WHERE user_id='$_SESSION['user']['user_id']'";
    $result = db_query($db, $query);
} else {
    Pass Error to FORM HERE
}
db_close($db);

看看AJAX。 这是一种无需刷新即可在页面之间发送数据的方法。 最简单的方法是使用jQuery的ajax方法

您的代码几乎拥有它:

$('#save_account').click(function() { 
    var log_token = $('#log_token').val();  
    var user_name = $('#user_name').val();  
    var user_pass = $('#user_pass').val();  
    $.post("php/includes/update_account.php", {
        log_token: log_token,
        user_name: user_name,
        user_pass: user_pass
        }, function(data){
            // handle the response from the page here
            if(data != "") {
                alert(data);
            }
        }
    );
});

传递到post函数中的匿名函数是一个回调函数,当从被调用的脚本收到响应时,该函数被调用。 变量数据包含页面的响应。

的PHP

$log_token = $_POST['log_token'];
$user_name = $_POST['user_name'];
$user_pass = $_POST['user_pass'];

$db = db_open();
$query = "SELECT user_name FROM users WHERE user_name='$user_name'";
$result = db_query($db, $query);
$result = db_num_rows($result);
if (!$result) {
    $query = "UPDATE users SET user_name='$user_name', user_pass='$user_pass' 
        WHERE user_id='$_SESSION['user']['user_id']'";
    $result = db_query($db, $query);
} else {
    // return there was an error
    echo "There was an error";
}
db_close($db);

您可以用它来做更复杂的事情。 您可以将一系列错误传回页面。 查看JSON,了解如何以JavaScript可以轻松解析的方式发送消息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM