来自php的参数时不会调用javascript函数

时间:2009-08-22 21:39:34

标签: php javascript arguments

我正在运行< a>在PHP中标记。每当我在js函数中传递一个参数时它都不会被调用,但是如果我传递空参数,函数就会被调用。

JS:

function displayBigImage(img){
  alert("inside func");
}

PHP:

//NOT WORKING:
echo "<a href='javascript:displayBigImage('".$row['IMG_ID']."')'>Press</a>";

//WORKING:
echo "<a href='javascript:displayBigImage()'>Press</a>";

我也尝试使用harcode参数值,例如

echo "<a href='javascript:displayBigImage('sample.jpg')'>Press</a>";

echo "<a href='javascript:displayBigImage(sample.jpg)'>Press</a>";

我不明白什么是错的?!?!?!?!

尽快回复。

提前致谢

3 个答案:

答案 0 :(得分:8)

您的报价有问题:

<a href='javascript:displayBigImage('sample.jpg')'>

您不能使用围绕 HTML属性和 中的单引号。您需要在两个地方使用不同的引号,例如:

<a href="javascript:displayBigImage('sample.jpg')">

所以在你的PHP中,它变为:

echo "<a href=\"javascript:displayBigImage('".$row['IMG_ID']."')\">Press</a>";

答案 1 :(得分:1)

你有一些不匹配的引号。你有这个:

echo " < a href='javascript:displayBigImage('".$row['IMG_ID']."')'>Press< / a >";

你应该有这个:

echo " <a href=\"javascript:displayBigImage('" . $row['IMG_ID'] . "')\">Press</a>";

答案 2 :(得分:1)

如果您对HTML属性值声明使用单引号,则不能在属性值中使用相同的引号,而不用字符引用来描述它们。

因此,您要么在href属性值中使用双引号:

echo "<a href='javascript:displayBigImage(\"".$row['IMG_ID']."\")'>Press</a>";

或者您使用正确的字符引用:

echo "<a href='javascript:displayBigImage(&#27;".$row['IMG_ID']."&#27;)'>Press</a>";

或者您使用href属性值声明的双引号:

echo "<a href=\"javascript:displayBigImage('".$row['IMG_ID']."')\">Press</a>";