类似按钮增量计数器不工作.PHP,AJAX,MySQL,javascript

Like button increment counter not working. PHP, AJAX, MySQL, javascript

本文关键字:PHP AJAX MySQL javascript 工作 按钮 计数器      更新时间:2023-09-26

我正在实现一个类似于facebook的"like"按钮计数器,因此每当用户点击按钮时,除此之外,还会有一个div标记从数据库中检索并更新它(请参阅下面的代码逻辑)。然而,它不起作用。请参阅以下所有代码:-

javascript:

function likeAJAX(strName)
{
    If(strName == "")
    {
        document.getElementById('likeCount').innerHTML="";
        return;
    }
    else
    if(window.XMLHttpRequest)
    {
        xmlHTTP = new XMLHttpRequest();
    }
    else
    {
        xmlHTTP = new ActiveXObject('Microsoft.XMLHTTP');
    }
    xmlHTTP.onreadystatechange = function()
    {
        if(xmlHTTP.readystate == 4 && xmlHTTP.status == 200)
        {
            document.getElementById('likeCount').innerHTML = xmlHTTP.responseText;
        }
    }
    xmlHTTP.open("GET","getLikes.php?n=" + strName,true);
    xmlHTTP.send();
}

HTML/PHP前端:

<img src="./images/like.jpg" style="cursor:hand;" onclick="likeAJAX(<?php echo $_GET['val']; ?>)"><?php echo $likeVal; ?> people like this</span>

PHP/MySQL:

<?php
$q = $_GET['n'];
        $temp;
        $con = mysql_connect('localhost','xxxx','xxxx');
        mysql_select_db("xxxx");
        $SQLQuery = "SELECT * FROM likes where name= '" . $q . "'";
        $res = mysql_query($SQLQuery);
        while($data = mysql_fetch_array($res))
        {
            $temp = $data['likes'];
        }
        mysql_free_result($res);
        mysql_close($con);
        if($temp == "")
        {
            $temp = "0";
        }
        $intCount = int($temp);
        $intCount++;
        $con = mysql_connect('localhost','xxxx','xxxx');
        mysql_select_db("xxxx");
        $SQLQuery = "UPDATE likes set likes = '" . $intCount . "' WHERE busname = '". $q . "';";
        $res = mysql_query($SQLQuery);
        mysql_free_result($res);
        mysql_close($con);
        echo $intCount;
?>

对于任何格式问题,我们深表歉意。我哪里错了?在我看来,点击like图像时,javascript函数似乎根本没有被调用?

问候,

Ochen

尝试对您的js:进行此更正

function likeAJAX(strName) {
        if (strName == "") {
            document.getElementById('likeCount').innerHTML="";
            return;
        }  else {
            if(window.XMLHttpRequest) {
                xmlHTTP = new XMLHttpRequest();
            } else {
                xmlHTTP = new ActiveXObject('Microsoft.XMLHTTP');
            }
            xmlHTTP.onreadystatechange = function() {
                if (xmlHTTP.readystate == 4 && xmlHTTP.status == 200) {
                    document.getElementById('likeCount').innerHTML = xmlHTTP.responseText;
                }
            }
            xmlHTTP.open("GET","getLikes.php?n=" + strName,true);
            xmlHTTP.send();
        }
    }