将值从PHP传递到JavaScript

时间:2011-12-24 18:26:16

标签: php javascript mysql variables

我正在尝试获取mysql数据库中id的值。但是,每次点击图片,我都会得到null。我使用this来获取值,但它不起作用,因为它一直在警报框中提供null

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <?php
        mysql_connect('localhost','root','');
        mysql_select_db("ajax");
        $query="SELECT * FROM xxxx";
        $result= mysql_query($query);

        while($row=  mysql_fetch_array($result)){
            echo "<img src='".$row['filepath']."' value='".$row['ID']."' id='".$row['ID']."'   onclick='getrating(this.value);'>";

            echo "<br>";
       }
    ?>

    <script type="text/javascript" >
        function getrating(row_id){
            var x = document.getElementById(row_id);
            alert(x);
        }
    </script>  
</body>
</html>

有什么问题?

6 个答案:

答案 0 :(得分:4)

您需要getrating(this.id)。图片没有value属性。

答案 1 :(得分:2)

试试这个:

 echo "<img src='".$row['filepath']."' id='".$row['ID']."' onclick='getrating(".$row['ID'].");'>";

答案 2 :(得分:1)

或者你可以传递this.id

<img id="row_12" onclick="getrating(this.id)" alt="image"/>



function getrating(id){
    alert(id);
}

或者您可以使用event对象和currentTarget propety

<img id="row_12" onclick="getrating(event)" alt="image"/>



function getrating(e){
    alert(e.currentTarget.id);
}

答案 3 :(得分:0)

value不是img标记的有效属性。您可以使用id,或者只使用

echo "<img ... onclick='getrating($row[ID]);'>";

答案 4 :(得分:0)

<img>没有值属性。

您正在为您的功能做不必要的工作。您的代码应如下所示: -

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <?php
        mysql_connect('localhost','root','');
        mysql_select_db("ajax");
        $query="SELECT * FROM xxxx";
        $result= mysql_query($query);

        while($row=  mysql_fetch_array($result)){
            echo "<img src='".$row['filepath']."' value='".$row['ID']."' id='".$row['ID']."'   onclick='getrating(this);'>";

            echo "<br>";
       }
    ?>

    <script type="text/javascript" >
        function getrating(element){
            alert(element);
        }
    </script>  
</body>
</html>

通过onclick事件将this传递给您的函数,您已经拥有了您正在寻找的元素,而无需使用document.getElementById()

答案 5 :(得分:0)

他们如何逃避ID可能是问题所在。我知道这已经得到了回答,但是对于那些需要另一种解决方案的人来说。

onclick="getrating(\''.$row['ID'].'\')"