每次点击.two类的链接时,我都会使用此代码调用run myupdate.php。
<link rel="stylesheet" href="bootstrap/css/bootstrap-theme.min.css">
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="customstyle.css">
<script>
$(document).ready(function(){
$(".two").click(function(){
$.ajax({
type : "POST",
url : "myupdate.php",
data : {action_type:"update"},
success : function(html){
}
});
});
});
这是myupdate.php的代码
<?php
session_start();
if (!$_SESSION['login']){
header('Location: index.php');
}
function updatepoints() {
mysql_connect("localhost","user","password") or die (mysql_error());
mysql_select_db("database") or die ("Cannot connect to database");
$query = mysql_query("SELECT *from member WHERE username='" . $_SESSION["username"] . "'");
$row=mysql_fetch_array($query);
$points = $row["points"];
$points = $points + 2;
mysql_query("UPDATE member set points='" . $points . "' WHERE username='" . $_SESSION["username"] . "'");
}
if($_POST['action_type'] == 'update') {
updatepoints();
}
?>
要做的是访问页面点击包含类.two的任何链接,当他刷新页面时,他的点数增加2。 此代码适用于PC上的所有浏览器,适用于Android的Firefox和其他此类浏览器,它适用于Android内置浏览器。但是,它在opera mini和UC浏览器中不起作用。 UC浏览器和opera mini在执行以这种方式编写的PHP代码时遇到了一些问题,或者他们没有将这些事件注册为点击。
答案 0 :(得分:0)
另一位用户提及on this question,Opera Mini的JavaScript支持非常有限。在链接https://dev.opera.com/articles/opera-mini-content-authoring-guidelines/#javascript中,您可以了解Click Click事件可能无法在Opera Mini上运行的原因:
Mini支持JavaScript和Opera Desktop,但不支持 在客户端上运行,它在服务器上运行。 [...]
服务器不会持续呈现给手机;相反,它需要一个 加载后页面的快照,暂停所有运行 脚本,并将其发送到手机。这意味着虽然Mini 支持JavaScript和Opera桌面一样,交互性也是如此 有点受限。 [...]
对于作者来说,所有这一切的结果就是一旦页面出现了 由服务器呈现,在用户执行某些操作之前不会更改 在那上面,脚本无法在后台运行。该 用户必须做一些事情才能使Mini与服务器通话 JavaScript取消暂停。 结果,你不能指望事情 像JavaScript动画或定时Ajax更新工作 他们在桌面浏览器上的背景。
所以,正如我在评论中提到的,并不是说Opera Mini存在PHP问题(在服务器端运行),它在JavaScript和AJAX调用方面存在问题(在客户端/浏览器端)。 / p>