2

我正在用 PHP 和 JavaScript 构建一个餐厅菜单应用程序并且在下订单时我似乎无法获得附加文本区域的按钮......(目前这只是测试代码)这是我的代码:

$test = mysql_query("SELECT * FROM main_stock");
while($row = mysql_fetch_array($test)){
echo "<div id='".$row["RCode"]."'><a href='javascript:addTo(".$row["Name"].",".$row["RCode"].")'>".$row["Name"]."</a></div>";}

我的javascript函数如下:

function addTo(name, Rcode) {
document.getElementById('order').value += name;
}

HTML表单如下:

    <form id="OrderForm" name="OrderForm" method="post" action="">
  <p>
    <label>
      <textarea name="order" id="order" cols="35" rows="20" readonly="readonly">test</textarea>
    </label>
  </p><table>
  <tr><td>Subtotal:</td><td><input type="text" id="subtotal" readonly="readonly" value="2.00" /></td></tr>
    <tr><td>Tax:</td><td><input type="text" id="tax" readonly="readonly" value="2.00"/></td></tr>
    <tr><td>Total:</td><td><input type="text" id="total" readonly="readonly" value="4.00"/></td></tr>
    <tr><td></td><td><input type="submit" id="submit" value="Send Order To Kitchen"/></td></tr>
    </table>

4

4 回答 4

1

看起来echo可能会导致无效的 JavaScript 语法。例如:

addTo(Something, Inc.,STI)

而不是:

addTo("Something, Inc.","STI")

您需要输出额外的引号以供 JavaScript 使用。而且,由于您已经在使用"PHP 字符串和'HTML 属性,这将需要转义 - 或编码:

echo "... href='javascript:addTo(&quot;".$row["Name"]."&quot;,&quot;".$row["RCode"]."&quot;)'>...";

另一个选项可能是使用json_encode,因为 JSON 基于 JavaScript 语法:

echo "... href='javascript:addTo(".json_encode($row["Name"]).",".json_encode($row["RCode"]).")'>...";
于 2013-01-31T17:47:06.947 回答
0

TEXTAREAs没有.value,他们有.innerHTML

于 2013-01-31T17:26:20.993 回答
0

尝试

document.getElementById('order').innerText += name;
于 2013-01-31T17:27:14.987 回答
0

'order'在您的示例中,ID 没有任何内容。

而不是document.getElementById('order'),尝试document.getElementById(Rcode)

于 2013-01-31T17:35:53.930 回答