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_encodeJSON は 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 に答える