2

フォームから投稿を介して x 量の変数を渡していることを伝え始めましょう。それらに , , ..., , plus, Maybe, menu_category_new
という名前を付けましょう(この最後の 1 つの変数をチェックするために空の場合を使用しています)。menu_category_1menu_category_2menu_category_x

簡単にするために、パラメーター$key(0 から始まる変数の量) も送信しています。
次に、それらを新しい変数$menu_category(配列) に設定する必要があります。この変数は内破され、データベースが更新されます。

$menu_categoryその新しい変数を、最初に名前が付けられたすべての変数を含む配列になるように設定するにはどうすればよいですか?
for ループを使用することを考えていましたが、便利なものが思いつきません。ありがとう!!!


キーに [] を追加するだけで、Quentin のやり方に行き着きました。すぐに効果があったので選びました。ただし、個人的にはこれが進むべき道だと思う janenz00 の提案をさらに掘り下げるつもりです。時間を割いてくださった皆様、ありがとうございました!!!!

4

5 に答える 5

1

それを行う最良の方法は、情報を投稿するときに、このように構成することです。

<input type="text" name="cat_names[]" />
<input type="text" name="cat_names[]" />
<input type="text" name="cat_names[]" />

これで、データを投稿すると、変数$_POST['cat_names']に3つの要素が含まれるようになります。入力ボックスが4つある場合は、4要素の配列になります。

例:

<input type="text" name="cat_names[]" value="a" />
<input type="text" name="cat_names[]" value="b" />
<input type="text" name="cat_names[]" value="echo" />
<input type="text" name="cat_names[]" value="kitten" />

データを投稿する

$_POST['cat_names'] = array('a', 'b', 'echo', 'kitten');

順序が維持されるとは言えませんが、「b」は「a」の前にある可能性があります。

ただし、入力を使用するか、JavaScriptを介して実行するかによって異なります。JSを使用している場合は、他の情報も送信するか、JSONを使用できます。

于 2012-11-04T17:00:53.433 に答える
1

フォーム要素 (同じタイプのものすべて) にmenu_category[](および ではなくmenu_category_N) という名前を付けます。

フォームを送信すると、PHP が自動的にそれらを配列に配置します。

于 2012-11-04T16:55:46.243 に答える
1

[]フォームで構文を使用することは、はるかに推奨されます。

ただし、何らかの理由でそれを行いたくない場合は、次のようにすることができます。

for ($x = 0; $x <= $_POST['key']; $x++) {
   $menu_category[] = $_POST["menu_category_$x"];
}
$menu_category[] = $_POST['menu_category_new'];
于 2012-11-04T16:57:55.213 に答える
1

上で誰もが示唆したように、最良の方法は、フォーム自体からすべてを配列として渡すことです。何らかの理由で現在のコードを変更できない場合、これが現在のシナリオでの処理方法です。

    $menu_category = array();
    for ($i = 1; $i <= $_POST['key']; $i++) {
        if (!empty($_POST['menu_category_'.$i]))
           $menu_category[] = $_POST['menu_category_'.$i];

    }
于 2012-11-04T17:05:30.523 に答える
0

それらに名前を付けましょうmenu_category_1menu_category_2

menu_category[0]PHP を使用しているので、名前を,menu_category[1]など (またはmenu_category[],など) にしましょうmenu_category[]

次に$_POST['menu_category']、または$_GET['menu_category']配列になります。

これは内破され、データベースを更新します

データベースを正規化します。CSV データを保存するのではなく、外部キーと 2 番目のテーブルを使用して、1 対多の関係を表現します。

于 2012-11-04T16:55:22.380 に答える