将一系列数字作为参数传递给PHP中的JavaScript函数时出错

时间:2012-03-13 13:39:30

标签: php javascript

这是我的PHP代码 -

for ($i=1;$i<=10;$i++)
{
   $numbers .= $i."\n";
}
echo "<input type='button' onclick=ShowNumbers('$numbers') value='Show Numbers'>";

我的Javascript代码 -

function ShowNumbers(numbers)
{
   alert("Numbers:: "+numbers);
}

但是当我点击按钮显示数字时,没有任何反应。怎么回事?

在FireBug中,我检查它显示的按钮元素 -

<input type="button" value="Show Numbers" ');="" 10="" 9="" 8="" 7="" 6="" 5="" 4="" 3="" 2="" onclick="ShowNumbers('1">

可能是问题所在。我如何以正确的格式获得它?

6 个答案:

答案 0 :(得分:2)

问题在于您格式化参数的方式。如果您在浏览器中查看页面源代码,那么您将在参数内看到换行符。如果您想让消息框显示所有数字,您可以尝试这样做:

$numbers = ""
for ($i=1;$i<=10;$i++)
{
   $numbers .= "$i\\n";
}
echo "<input type='button' onclick=\"ShowNumbers('$numbers')\" value='Show Numbers'>";

答案 1 :(得分:1)

在构建HTML时使用引号:

echo '<input type="button" onclick="ShowNumbers(\'' . $numbers . '\')" value="Show Numbers">';

答案 2 :(得分:1)

尝试用双引号括起onClick属性值,就像其他属性一样。:

onclick="ShowNumbers('$numbers')"

答案 3 :(得分:1)

试试这个;

for ($i=1;$i<=10;$i++)
{
   $numbers .= $i . ",";
}
echo "<input type=\"button\" onclick=\"ShowNumbers('" . $numbers . "')\" value=\"Show Numbers\" />";

用;

function ShowNumbers(numbers)
{
   alert("Numbers = " + numbers);
}

它应呈现为;

<input type="button" onclick="ShowNumbers('1,2,3,4,5,6,7,8,9,')" value="Show Numbers" />

答案 4 :(得分:1)

你缺少引号。使用PHP和HTML时,您应该使用单引号进行回显,这样您就可以在字符串中使用双引号:

echo '<input type="button" onclick="ShowNumbers(\'' . $numbers . '\')" value="Show Numbers" />';

此外,最好将回车符离$numbers变量并在打印出来时格式化。

答案 5 :(得分:0)

试试这个

<html>
<head>
<script type = "text/javascript">
function ShowNumbers(numbers){
alert(numbers);
}

</script>   

<head>    
<body>

<?php
$numbers='';
for ($i=1;$i<=10;$i++)
{
   $numbers .= $i;
}
echo "<input type='button' onclick='ShowNumbers($numbers)' value='Show Numbers'>";

?>    
</body>
</html>