-2

以前に隠しフィールドに関する質問を投稿したことがありますが、名前が重複していたため、テキスト ボックスに問題が発生しました。画像ビューアにjqueryを使用しています。同時に、隠しフィールドが必要です。ただし、テキストボックスを使用すると、すべてのテキストボックスが表示されているように見えます。

<div class="container">
  <div class="full-image">
    <form action="addOrder.php" method="post">
      <a href="city/GVcementMixture.jpg" class="zoomIt visible"><img src="city/rsz_cementmixture.jpg" alt="" /></a>
      <input type="hidden" name="op" value="add">         
      <input type="hidden" name="name" value="Cement Mixture">
      <input type="hidden" name="price" value="29.90">
      <input type="text" name="quantity" value="quantity?">
      <input type="hidden" name="subtotal" value="subtotal">
      <input type="submit" value="Add to Cart">
    </form>

………………

出力には数量の 2 つのテキストボックスが表示されますが、入力した数量の数がデータベースに保存されました...

この問題を解決する方法を知っている人はいますか?

psこの質問は、関数の助けを借りて以下で解決されました..読んでくれてありがとう。

4

2 に答える 2

1

わかりましたので、HTML は単純に解釈されるので、すべてのタグが DOM 要素を作成します。これは、入力タグ (type text ofc) と同じ数のテキストボックスが存在することを意味します。あなたは2回入れます:

<input type="text" name="quantity" value="quantity?">
<input type="submit" value="Add to Cart">

したがって、2 つのテキストボックスと送信ボタンが表示されます。
HTML のみで行うため、画像ごとに 1 つのフォームが必要になるため (したがって、1 つのテキストボックスと 1 つの送信)、多くの選択肢がありません。

さて、あなたはjQueryを使用しています(そして一般的にはjavascriptですが、それは重要ではありません)。あなたができることは、スクリプトを追加することです。たとえば、フォームからテキストボックスを削除し、一意のテキストボックスを追加し、ユーザーがサーバーにデータを送信したときにトリガーされる「送信」イベントをリッスンして、次のような非表示の入力を手動で更新できるようにします。

<input type="hidden" name="quantity" />

これが最善の解決策だと言っているわけではありませんが、スクリプト作成はほとんど必要ありません。
もしあなたが本当に道に迷っているなら、私はもっと情報を提供できます。ただし、必要なことは明確かつ徹底してください。

編集:
そうです、それらのテキストボックスを削除して、別の場所に追加してください。これを機能させるには2つの方法があります

于 2013-03-29T13:35:44.953 に答える
0

あなたのコメントに基づいて、各画像はすべて同じ製品を表しているため、個別の「カートに追加」ボタンを使用して独自のフォームを作成する必要はないようです。

では、画像を表示する HTML (画像ごとに繰り返される) を、フォームを作成する HTML (一度だけ表示される) から分離しないのはなぜでしょうか?

于 2013-03-29T13:46:48.913 に答える