我试图在HTML输入标签中调用JS函数。 该标记本身在PHP代码中,该函数在使用int值时也可以正常工作,因此我知道问题与我传递字符串有关。见下文。
foreach($res as $row) {
$rowNumber = $row["RowNumber"];
$price = $row["Price"];
echo "<tr><td>".$row["RowNumber"]."</td>"." "."<td>".
$row["Price"]."</td><td><form method='POST'
action='book.php'>
<input type='checkbox' name='$i'
onclick='totalSummary($price,'$rowNumber');'>
</form></td></tr>";
$i++;
}
此循环从SQL数据库中提取每个$row
,然后发布一个复选框。单击此复选框后,我要调用JS函数totalSummary()
,该函数将传递一个int值(指定席位的费用)和String类型的行号。问题是,当我仅用$price
调用函数时,函数被成功调用。但是当我尝试通过STRING时也不会接听。参见下面的JS代码(也位于上面的代码之后,并在上面编写):
echo "<script type='text/javascript'>
var totalPrice = 0;
var seatsSelected = [];
function totalSummary(cost,seats){
alert(totalPrice);
totalPrice = totalPrice + cost;
seatsSelected.push(seats);
}
function displayTotal(){
alert('Seats selected: ' + seats.join(',') + \ntotalPrice);
}
</script>";
仅存在警报调用,因此我可以看到该函数被调用。但是当我选中一个框时,它不会出现。
在我拔头发时会有所帮助!
谢谢。
答案 0 :(得分:0)
您在第一个代码块中的引号有问题。
您可以使用单引号来包装onclick函数和$ rowNumber值onclick='totalSummary($price,'$rowNumber');'
尝试类似
onclick=\"totalSummary($price,'$rowNumber');\"