使用Opera mini和UC浏览器时,MySQL值不会更新?

时间:2014-10-05 12:15:57

标签: javascript php html mysql

每次点击.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代码时遇到了一些问题,或者他们没有将这些事件注册为点击。

1 个答案:

答案 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>