如何在更新成功后使用ajax和重定向页面更新mysql?
更新mysql重定向到update
member.php
的index.php
<a onClick="update()" id="1">update<a>
<script type="text/javascript">
$('.clickable').on('click', function() {
var data = {
id: $(this).data('id')
};
$.ajax({
type: 'POST',
url: 'update.php',
data: data,
success: function(response) {
console.log(response);
}
});
});
</script>
update.php
<?php
include('connect.php');
$id = $_POST['id'];
mysql_query ("UPDATE member SET number = '' WHERE id=$id");
?>
<script language="javascript">
window.location.href = "member.php"
</script>
答案 0 :(得分:0)
首先添加课程以点击
<a onClick="update();" id="1" class="clickable">update<a>
然后返回回复: -
$query = mysql_query ("UPDATE member SET number = '' WHERE id=$id");
if($query)
echo 'success';
然后成功
success: function(response) {
window.location.href = "member.php";
}
所以完整的代码将是: -
<a onClick="update()" id="1" class="clickable">update<a>
<script type="text/javascript">
function update(){
$.ajax({
type: 'POST',
url: 'update.php',
data: {id: $(".clickable").attr('id')},
success: function(response) {
//$('.clickable').hide(); // hide not possible on redirect
window.location.href = "member.php";
}
});
}
</script>
update.php
<?php
include('connect.php');
$id = $_POST['id'];
$query = mysql_query ("UPDATE member SET number = '' WHERE id=$id");
if($query)
echo 'success';
?>
答案 1 :(得分:0)
使用带有JSON答案的AJAX,这样你就可以随时重定向而没有问题,并使用PHP中的对象到你的JS流程:
您不必在DOM上使用js事件,只需使用您的js即可实现它,并且它将使您的代码更具可重用性,因为它将使其免于硬编码变量:
<强>的index.html 强>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<a class="clickable" href="update.php" id="1">update</a>
<script type="text/javascript">
$('.clickable').on('click', function(e) {
e.preventDefault();
var link = $(this);
var data = {
id: link.attr('id')
};
$.ajax({
type: 'POST',
url: link.attr('href'),
data: data,
dataType: 'json',
success: function(response) {
console.log(response);
if (response.result) {
console.log('All done!');
} else {
console.log('Something went wrong!');
}
if (response.redirect != 'undefined') {
window.location.href = response.redirect;
}
}
});
});
</script>
</body>
</html>
然后,在您的PHP中,您必须将答案作为JSON值给出,以获得它:
<强> update.php 强>
<?php
include('connect.php');
$id = $_POST['id'];
$data = array();
if ( mysql_query ("UPDATE member SET number = '' WHERE id=$id") ) {
$data['result'] = true;
$data['redirect'] = 'http://example.com/redirect_to_ok_place';
} else {
$data['result'] = false;
$data['redirect'] = 'http://example.com/redirect_wrong_result';
}
echo json_encode($data); die();
?>
请注意,如果您想从PHP获取值,您的AJAX文件必须完成并回显您的响应,并且您必须有一个格式良好的json,因此,如果没有显示任何内容,请使用控制台检查您要获取的值,如果你以前回应过什么。
要完成,同样重要的是要指出你不能使用MYSQL_QUERY PHP函数!!不推荐使用,这是一个巨大的安全漏洞。使用PDO,或者,如果没有别的办法,可以使用mysqli扩展。您的代码已准备好进行MySQL注入,因此请在此处检查它以避免它。
答案 2 :(得分:0)
您不需要提出重复请求。只需更改您的update.ph,如下所示:
<?php
include('connect.php');
$id = $_POST['id'];
mysql_query ("UPDATE member SET number = '' WHERE id=$id");
header('Location: http://www.example.com/member.php'); // Here you need to give your actual path where you want to redirect.
exit;
?>