[英]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.