从回显的php传递数据

时间:2011-07-09 04:12:30

标签: php javascript

我目前正在尝试将数据从我的服务器传递到我的主页面。我目前有每个返回结果的PHP回显:

while($row = mysql_fetch_array($result))
{
    echo "<img class='s' id=" . $row['id'] . " src=QR/" . $row['src'] ".png>";

}

当我尝试在id:

之后添加字段num时
<img class='s' id=(rowid) num=".$row['num']." .......

我使用

时未定义
alert(this.num)

但是

alert(this.id)

的工作原理。我怎样才能传递num值?

编辑:

嘿大家,谢谢你的帮助,我已经包含了一个关于我如何解决这个问题的方法。 http://jsfiddle.net/3yzcx/4/

我不得不使用jQuery并使用.attr()来定义我自己的名为num的属性并将其调出。

4 个答案:

答案 0 :(得分:4)

很简单。 idimg代码的有效属性。 num不是。您不能将任意属性分配给标记并期望它可以正常工作。

如果你想将你的PHP数据传递给javascript,使用隐藏的表单元素,或者更简单的是这样:

<?php
echo '<script type="text/javascript">';
echo 'var num = ' . $num . ';';
echo '</script>';
?>

当然我知道你在循环中,这只是一个例子。你可以轻松地将它变成数组或其他东西。

答案 1 :(得分:2)

添加属性不起作用。您需要在<input type=hidden value='num'>内添加<div>或其他内容,其中 num 是您的号码数据。您还需要通过为其提供ID来使输入字段可寻址:

echo("<input type=hidden id=\"$row[id]-num\" value='num'>");

另外,我看到一个结束div标记但没有开始标记。你想解决这个问题!

答案 2 :(得分:1)

从技术上讲,您不应该分配自定义属性。由于有关数据前缀的讨论,Jcolebrand的原始帖子值得投票。但是,即使技术上不正确,您也应该能够使用getAttribute()函数获取值。

this.getAttribute("num");

这适用于Firefox,但在其他浏览器中无法保证。

答案 3 :(得分:-1)

我没有在jQuery之外尝试过这个,但是在那个框架中你会使用

alert(this.attr("num"));

检索非标准属性。也可以使用普通的javascript,但我没试过。