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


Error while passing series of numbers as a parameter to a JavaScript function in PHP

这是我的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">

也许这就是问题所在。如何获得正确的格式?

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

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

在构建HTML:时使用引号

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

与其他属性一样,尝试用双引号将onClick属性值括起来

onclick="ShowNumbers('$numbers')"

试试这个;

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" />

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

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

此外,最好将回车保留在$numbers变量之外,并在打印时对其进行格式化。

试试这个

<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>