所以我还有另一个问题,
我正在尝试使AJAX脚本正常工作,但点击该页面将重新加载,但无法更新数据库字段。
我使用的代码我已经在网站上为其他类似的脚本工作了但由于某种原因这个,使用相同的代码不起作用,使用的代码如下所示;
将代码发送到AJAX的HTML代码:
<input onClick="read('<? echo $id; ?>')" id="read" name="read" type="checkbox" value="1" style="position:relative; top:2px; width: auto">
确认用户选择并发送到表单处理文件的代码:
function read(ID) {
if(confirm('Are you sure you have read this carefully, you will not be alerted again "' + ID + '" ?')) {
$.get('http://<? echo ROOT . ADMIN . INCLUDES; ?>formHandling.php', { read: ID }, function(data) {
window.location.href = 'http://<? echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].""; ?>';
});
}
return false;
}
最后处理SQL查询的代码:
if (isset($_GET['read'])) {
// Pass the GET data and associate them to variables
$read = trim($_GET['read']);
$query = "UPDATE cms_motd SET read='$read' WHERE id='1'";
$result = mysql_query($query)or die("Database query died: " . mysql_error());
unset($_GET['readConfirm']);
}
提前感谢所有帮助。
此致
丹
答案 0 :(得分:1)
你的意思是:
$query = "UPDATE cms_motd SET read='1' WHERE id='$read'";
而不是:
$query = "UPDATE cms_motd SET read='$read' WHERE id='1'";
修改强>
我不知道它是否是副本和过去的错误:
$result = mysql_query($query);or die("Database query died: " . mysql_error());
需要:
$result = mysql_query($query) or die("Database query died: " . mysql_error());
答案 1 :(得分:0)
我对您执行查询但不提供任何反馈以继续查询这一事实存在一些挑战。例如,如果查询失败怎么办?你刚才按下了吗?
以下是我处理这些Ajax事务的方式(是的,简写!)
$('#read').click(function() {
$("#div").dialog({ //Shows dialog
height: 250,
width: 450,
modal: true,
buttons: {
"Cancel": function() {
$( this ).dialog( "close" );
},
"Save": function() {
$.ajax({
url: "url.php", //
timeout: 30000,
type: "POST",
data: $('#form').serialize(),
dataType: 'json',
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("An error has occurred making the request: " + errorThrown)
},
success: function(data){
$('#updatediv).html(data.stuff);
src="web/imgs/icons/24deleteB.png"></td>';
}
$( this ).dialog( "close" );
}
}
});
});
现在,URL.php将执行查询并将json_encoded字符串返回给AJAX,然后AJAX将通过成功/错误函数知道事务是否成功。您可以对成功案例进行额外调整,以确保以特定方式保存某些内容,或者在执行某些操作之前将结果与您希望的案例相匹配。成功之后,我只展示一个简单的.html内部html类型动作,但你可以做任何数量或种类的事情,如显示/隐藏,内部HTML等。选择是你的。另外,请注意我使用Jquery UI对话框而不是系统对话框,因此如果您逐字使用,则需要Jquery UI使其看起来很漂亮。最后,而不是onclick注意我正在使用Jquery提供的.click功能,这只是一个头发清洁器。