在HTML按钮上回显PHP数组值的JavaScript警报?

我正在尝试使用PHP来回应股票交易游戏中的一组按钮(买入和卖出).这些按钮最终会有一个onclick =事件处理程序,它调用一个JavaScript函数来填充表单上的某些字段,但我只是试图获得一个带有一个数据的alert().我无法从echo语句中获取结果以正确打印警报,因此它甚至不会触发.我还使用了print_r($stockInfo)来确保我的数组正确地填充了测试数据.

这是我的数组:

$stockInfo = array(
    array('name' => 'Company 1', 'description' => 'Description 1', 'price' => '100', 'yield' => '.05'),
    array('name' => 'Company 2', 'description' => 'Description 2', 'price' => '89', 'yield' => '.06'),
    array('name' => 'Company 3', 'description' => 'Description 3', 'price' => '110', 'yield' => '.03')
);

我的PHP代码试图生成一个按钮:

<?php
echo <<<EOT
    <button id="buy" class="btn btn-primary btn-small" onclick="alert('$stockInfo[0]["name"]');">Buy</button>
EOT;
?>

该代码的结果是:

<button id="buy" class="btn btn-primary btn-small" onclick="alert('Array["name"]');">Buy</button>

我只是想不通为什么我甚至无法得到一个简单的警报.运行:

echo $stockInfo[0]["name"];

正确打印出“公司1”,但它不会在alert()的参数中打印该文本.

我读过*,很多网页文章,并在过去的一天进行了实验,我无法弄清楚这一点.如果有人能提供任何帮助,我会非常感激.

谢谢!

解决方法:

要在heredoc syntax中使用变量,必须在它们周围放置大括号:

<?php
echo <<<EOT
    <button id="buy" class="btn btn-primary btn-small" onclick="alert('{$stockInfo[0]["name"]}');">Buy</button>
EOT;
?>
上一篇:在PyCharm中的Python heredoc行上删除了尾随空格


下一篇:PHP heredoc语法