首页 > 解决方案 > 如何在这个 PHP --> HTML --> JS 代码中将字符串值传递给 JS 函数?

问题描述

我正在尝试在 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++;
        }

这个循环$row从 SQL 数据库中提取每个,然后发布一个复选框。单击此复选框后,我想调用totalSummary()传递一个 int 值(指定座位的成本)和 String 类型的行号的 JS 函数。问题是当我调用该函数时,$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>";

警报调用只在那里,所以我可以看到该函数被调用。但是当我选中一个框时它不会出现。

当我把头发拉出来时,我们将不胜感激!

谢谢。

标签: javascriptphphtmlsql

解决方案


第一个代码块中的引号有问题。您使用单引号来包装 onclick 函数和 $rowNumber 值onclick='totalSummary($price,'$rowNumber');' 尝试类似 onclick=\"totalSummary($price,'$rowNumber');\"


推荐阅读