我需要帮助将mysql / php变量传递给javascript?

时间:2011-12-24 00:22:56

标签: php javascript mysql

我试图获取用户选择使用onclick进行评级的图片的ID,但是它只会提醒“null”。当用户选择div标签时,它会提醒id。我想显示id。我可以建立这个,然后实现ajax来评估图片。但是,我需要帮助获取用户选择的图片的ID。

 <?php

mysql_connect('localhost','root','');
mysql_select_db("ajax");
$query="SELECT * FROM xxxx";
$result= mysql_query($query);

while($row= mysql_fetch_array($result)){

$rating=$row['ID'];
  echo "<img src='".$row['filepath']."'>";
  echo "<br>";
  echo "<div id='".$row['ID']."' value='".$row['ID']."' onclick='getrating();'>Likes: ".$row['Likes']."</div>";
  echo "<br>";

}

im trying to get what picture the user selected to rate.

?>
<script type="text/javascript" >


function getrating(){
var x= document.getElementById("<?php echo $row['ID']; ?>");


alert(x)



}
</script>

4 个答案:

答案 0 :(得分:3)

你应该做的一些事情:

  1. 尝试给出一个以字母开头的id,例如,在编写HTML代码时使用:

    echo "<div id='img" . $row[ 'ID' ] . "'></div>"
    

    请注意,我添加了一个前缀&#39; img&#39;到div的ID。

  2. 你必须将正确的索引传递给javascript函数,因为你是在列表中绘制div而不是javascript函数:

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

    现在,当点击相应的DIV元素时,javascript函数将获得正确的图像ID。

  3. 将javascript函数更改为:

    <script type="text/javascript" >
    
       function getrating( id )
       {
           var x = document.getElementById( "img" + id );
           alert( x );
       }
    
    </script>
    

答案 1 :(得分:0)

onclick="getrating(this.value);"

该代码会将d​​iv的当前值属性传递给您在JavaScript中创建的函数。请务必在函数中添加参数以接收数据。

答案 2 :(得分:0)

易。

改变这个:

  echo "<div id='".$row['ID']."' value='".$row['ID']."' onclick='getrating();'>Likes: ".$row['Likes']."</div>";

到此:

  echo "<div id='".$row['ID']."' value='".$row['ID']."' onclick='getrating(this.value);'>Likes: ".$row['Likes']."</div>";

而且:

function getrating(){
    var x= document.getElementById("<?php echo $row['ID']; ?>");

到此:

function getrating(row_id){
    var x= document.getElementById(row_id);

答案 3 :(得分:0)

您应该将事件处理程序放在图像中,如下所示:

<img src="" onclick="getrating(this.value)">

你的功能应该是这样的:

function getrating(row_id){
    x = document.getElementById(row_id);
    alert(x);
}