我已经检查了所有类似的问题,但没有发现任何有帮助的东西......所以这里有!
我正在为我的大学项目设计一个网站。它只是一个图像库。我为每个图像显示一个计数器,每次单击图像时都会增加。页面刷新时,将显示新号码。和我一起到目前为止?
问题是数据库更新完成后,返回没有完成剩下的代码...
echo "<div class='gridImg'><a href=".$imgpath." data-lightbox='countryside' data-title='".$row['ldesc']."' onclick='"."showUser('".$fname."')'>";
以上行是在php文件中,有问题的函数是showUser,它传递一个变量$ fname ...
function showUser(str) {
if (str === "") {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML =
this.responseText;
}
};
xmlhttp.open("GET","../php/countrysideupdateviews.php?q="+str,true);
xmlhttp.send();
return;
}
}
上面的脚本获取传递的值并将其移交给countrysideupdateviews.php(对不起,如果这个脚本乱七八糟,我是AJAX的新手并从W3Schools网站上获取它。
<?php
$q = $_GET['q'];
$conn=new mysqli('localhost','user','pass','dbname');
$sql="UPDATE countryside SET views = views + 1 WHERE fname = '".$q."'";
$result=$conn->query($sql);
mysqli_close($conn);
?>
上面的php文件更新了数据库。
好的...
因此,用户点击屏幕上的其中一个图片,打开一个灯箱图库,但也会更新视图计数然后返回控件 - 除了一切正常 - 更新发生 - 但灯箱无法启动相反,显示了单击的一个静态大图像。清除它的唯一方法是刷新站点,这反映了更新的计数器。
我已经向onclick函数调用添加了返回,该函数调用返回控件,但计数器未更新。我哪里错了?请记住,我仍然在学习,我希望这是有道理的:)
答案 0 :(得分:0)
onclick
的参数必须是函数。 showUser("foo")
不是函数。您还缺少event.preventDefault()
,这会阻止点击操作打开链接。
将您的showUser
更改为
function showUser(str) {
return function(event) {
if (str === "") {
document.getElementById("txtHint").innerHTML = "";
} else {
if (window.XMLHttpRequest) {
var xmlhttp = new XMLHttpRequest();
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xmlhttp.open("GET","../php/countrysideupdateviews.php?q="+str,true);
xmlhttp.send();
}
event.preventDefault();
};
}
答案 1 :(得分:0)
好的,在玩了@ apaatsio的答案后,我得到了它,这就是现在的功能......
syntax error, insert ";" to complete Statement
String literal is not properly closed by a double-quote
at UsingActionsClass.UsingActions.main(UsingActions.java:23)
看起来阻止点击打开链接工作正常 - 谢谢:)