无法将参数传递给javascript函数,这是php脚本的变量

时间:2011-10-25 13:09:20

标签: php

我是php的新手,我不知道如何在php和javascript之间制作东西请纠正我如果我错了

<!doctype html>
<html>
<head>
<Script type="text/javascript">
function show(m)
{
 var k = document.getElementById(m);
 k.src="four.jpg";
}
</head>
<body>
<? --some php code--
  $i       = 2;
  $row[$i] = "somefilename";
  printf('<img src="%s" id="%d"  onclick="show($i)"/>', $row[$i],$i);
?>

这是我的sample.php文件。我想通过javascript为图片标记引发onclick事件,img标签是使用php脚本创建的,我希望它像这样

onclick="show($i)" should be made like below
onclick="show('2')" <!-- and here 2 is the value of php variable

我曾尝试过这种方式

 onclick="show('$i')" but it passes $i as the parameter to javascript show() function 
 but not the value 2

请帮我解决这些问题。实际上有可能吗?我知道javascript是一个浏览器脚本,php是服务器端脚本,我们可以通过这些方式将变量从php传递到javascript吗?

5 个答案:

答案 0 :(得分:2)

试试这个

printf('<img src="%s" id="%d"  onclick="show('.$i.')"/>', $row[$i],$i);

答案 1 :(得分:2)

You have quote problem

在PHP中,单引号内的所有内容都按原样打印。所以,在你的情况下,它应该是:

printf('<img src="%s" id="%d"  onclick="show(' . $i . ')"/>', $row[$i],$i);

答案 2 :(得分:2)

很有趣,到目前为止所有回答的人都将printf参数更改为使用双引号或连接变量。为什么不:

printf('<img src="%s" id="%d"  onclick="show(%d)"/>', $row[$i],$i,$i);

因为他已经在使用printf()......?

此外,您实际上并不需要PHP中的值,因为它已经在HTML中。你可以使用:

printf('<img src="%s" id="%d"  onclick="show(this.id)"/>', $row[$i],$i);

答案 3 :(得分:1)

您需要使用双引号打印字符串才能使用变量引用:

printf("<img src=\"%s\" id=\"%d\"  onclick=\"show($i)\" />", $row[$i],$i);

我没有测试过,但这应该适合你。

答案 4 :(得分:0)

<?php

  $i       = 2;
  $row[$i] = "somefilename";
  printf('<img src="%s" id="%d"  onclick="show(' . "'" . %d . "'" . ')"/>', $row[$i],$i);

?>