按下按钮会调用需要sn值的函数,但下面的代码会因Chrome调试消息而失败:
未捕获的ReferenceError:未定义电话
电话是服务名称之一。
<html>
<head>
<title>someTitle</title>
<script>
function myF(varname) {
//I'll do here some other task with varname
console.log(varname);
}
</script>
</head>
<body>
<pre>
<?php
$sn='noname';
//here, the code to connect and select DB
while ($reg=mysql_fetch_array($registers))
{
echo "Service Name: ".$reg['sname']."<br>";
$sn = $reg['sname'];
echo "<button onclick=\"myF($sn)\">Vote</button>";
echo "<hr>";
}
mysql_close($conexion);
?>
</pre>
</body>
</html>
有可能是一个简单的解决方案吗?我的PHP服务器有PHP5
答案 0 :(得分:1)
答案 1 :(得分:0)
你的连接需要像这样改变,
echo '<button onclick="myF("'.$sn.'")">Vote</button>';
答案 2 :(得分:0)
为什么需要双引号?
echo "<button onclick=\"myF($sn)\">Vote</button>";
请改为:
echo '<button onclick="myF(\''. $sn . '\')">Vote</button>';
或者也许这样做sprintf
:
echo sprintf("<button onclick=\"myF('%s')\">Vote</button>", $sn);
答案 3 :(得分:0)
这有用吗?
echo "<button onclick=\"myF('$sn')\">Vote</button>";
我尝试了一个简单的测试用例,没有任何MySQL。你可以找到我在下面使用的代码:
<?php
$sn='noname';
$registers = array(array('sname' => 'apple'), array('sname' => 'banana'), array('sname' => 'woodapple')); // Dummy "MySQL" Fetch Array (this might differ from what your 'while' loop receives)
foreach ($registers as $reg){ // In your case, a 'while' loop works.
echo "Service Name: ".$reg['sname']."<br>";
$sn = $reg['sname'];
echo "<button onclick=\"myF('$sn')\">Vote</button>"; // Added Quotes.
echo "<hr>";
}
?>
提示:请不要使用mysql_ *函数!它们已被弃用!
答案 4 :(得分:-1)
我认为当您将PHP变量作为参数传递给调用onclick
的按钮的javascript function
事件时,您会断言,因为它没有被引用。所以需要引用它。我编辑了您需要编辑代码的代码行。所以试试:
...
......
........
........
echo "<button onclick=\"myF("$sn")\">Vote</button>";
.......
......
....