好吧所以我试图基本上把$ row ['cardid']中的内容设置为我的div标签的值。然后在回显的html文件中,它将运行我的函数,该函数使用div标签中的该值。现在,当我使用onclick时,它会拉起但是我的值是未定义的。所以我的问题是,当我使用html将其提取时,为什么我的变量未定义?
<?php
$q=$_GET["q"];
$con = mysql_connect("*", "*", "*");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("*", $con);
$sql="SELECT cardset, cardname, cardnumber, cardid FROM cards WHERE cardname LIKE '%".$q."%' OR cardset LIKE '%".$q."%'";
$result = mysql_query($sql) or die ('Error: '.mysql_error ());
echo "<table border='1'>
<tr>
<th>#</th>
<th>Cardname</th>
<th>Card Set</th>
</tr>";
while ($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['cardnumber'] . "</td>";
// This is the troubled line.
echo '<td><div value="'.$row['cardid'].'" onclick="changeimage(this.value)">' . $row['cardname'] . '</div></td>';
echo "<td>" . $row['cardid'] . "</td>";
echo "<td>" . $row['cardset'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
答案 0 :(得分:1)
我不完全理解你的问题,但你的意思是这样的?
echo '<td><div onclick="changeimage(this.id)" id="'.$row['cardid'].'">' . $row['cardname'] . '</div></td>';
基本上使用ID而不是值..
示例:jsFiddle
答案 1 :(得分:1)
div
元素没有value
属性,但您可以获得名为attribute
的{{1}}的值 - 您应该使用value
:
.getAttribute("value")
此外,如果您需要将数据存储在DOM元素中,use data-
attributes.(或者只是将它们命名为即使您现在不必支持HTML5;它将使转换更容易)
答案 2 :(得分:1)
不要使用this.value。 这不是一种形式。
使用this.innerText或this.innerHtml获取div的内容
答案 3 :(得分:0)
如果我理解你的答案,你想提醒$ row ['cardid']的价值? 使用您的代码,您无法获得正确的值,因为您将javascript代码与PHP代码混合在一起。 'onclick'事件处理程序中的'this'关键字是javascript函数本身,然后它没有'value'属性。 试试这段代码,提醒正确的值:
echo '<td><div value="'.$row['cardid'].'" onclick="changeimage('.$row['cardid'].'">'. $row['cardname'] . '</div></td>';