0

ユーザーがレシピを作成できるページがあります。私は、ユーザーがより多くの材料のためにフォーム入力要素を追加し続けることを可能にするjavascriptスクリプトを持っています。レシピに4つの材料が含まれているとすると、ユーザーは引き続き入力を追加できます。ただし、これにより、入力ID/名前のIDがcomponent1/ 2/3/4に変更され、要素の量はユーザーの裁量に依存するため、フォームの投稿から情報を取得する方法がわかりません。結果をPHP変数にロードしてから、それらをmysqlクエリに挿入するにはどうすればよいでしょうか。

htmlフォームの構文

<div id="ingredient1" class="clonedInput">
                <h2 class="first-column">Ingredient</h2>
                <span style="float:left; padding-right: 10px;">
                <input type="text" name="scroll" value="Add Ingredient" id="ingredient" class="ingredient"/>
                </span>
</div>

材料1は、目的2の材料が追加されるために材料2に変更されます。

少し紛らわしい問題なので、どんな助けでも素晴らしいでしょう!

JB

4

2 に答える 2

1

あなたが探しているのは[]、入力要素名で使用していると思います。これにより、データが配列として投稿されます。したがって、これをフォームの成分入力要素として持っているとします (javascript がいくつか追加した後):

<input type="text" name="ingredients[]" value="" />
<input type="text" name="ingredients[]" value="" />
<input type="text" name="ingredients[]" value="" />
<input type="text" name="ingredients[]" value="" />
<input type="text" name="ingredients[]" value="" />

ユーザーがデータを POST すると、次の場所にある成分の配列にアクセスできるようになります。$_POST['ingredients']

于 2012-12-11T00:16:51.600 に答える
0

ここではjavascriptだけでは不十分なので、コードではなくロジックについて説明します。

  1. テーブルの材料を作成します。あなたが彼らに使用を許可できるものなら何でも。id、ecc
  2. 投稿中に、ユーザーに材料1、材料2を選択する自由を与える代わりに、材料テーブルから値をロードし、材料[id_from_db]eccとしてインデックスを付けます。
  3. テーブルレシピを作成します。一意のIDとその説明が必要です
  4. リレーションテーブルrecipe_id、component_idを作成します

次に、ユーザーがデータを投稿すると、レシピに1行、リレーションテーブルに使用する材料と同じ数の行が作成されます。

後でレシピを選択するときは、リレーションテーブルにあるすべてのものも選択しますが、そこには複数の行がある可能性があります...

それがあなたの助けになることを願っています。このためのコードを表示することはできませんが、それがどのように行われるかを理解していれば、作成するのは難しくありません。

マキシム

于 2012-12-11T00:22:26.657 に答える