我正在尝试获取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>
有什么问题?
答案 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'].'\')"