我正在尝试使用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;
?>