Передача значений из PHP в JavaScript - PullRequest
0 голосов
/ 24 декабря 2011

Я пытаюсь получить значение, которое является идентификатором в базе данных mysql. Однако каждый раз, когда я нажимаю на изображение, я получаю 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 ]

4 голосов
/ 24 декабря 2011

Вам нужно getrating(this.id) вместо.Изображения не имеют свойства value.

2 голосов
/ 24 декабря 2011

Попробуйте это:

 echo "<img src='".$row['filepath']."' id='".$row['ID']."' onclick='getrating(".$row['ID'].");'>";
1 голос
/ 24 декабря 2011

Или вы можете передать this.id

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



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

Или вы можете использовать объект события и свойство currentTarget

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



function getrating(e){
    alert(e.currentTarget.id);
}
0 голосов
/ 07 марта 2013

Может быть, проблема в том, как вы избегаете идентификации.Я знаю, что на этот вопрос уже дан ответ, но на всякий случай для тех людей, которым нужно другое решение.

onclick="getrating(\''.$row['ID'].'\')"
0 голосов
/ 24 декабря 2011

У <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>

Передав this своей функции через событие onclick, у вас уже есть элемент, который вы ищете без необходимости использовать document.getElementById().

0 голосов
/ 24 декабря 2011

value не является допустимым атрибутом тега img.Вы можете использовать id, или просто сделать

echo "<img ... onclick='getrating($row[ID]);'>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...