1

これが私が見逃している、または適切に行っていない単純なことであることを願っています。

フォームの 1 つの送信ボタンから 2 つの結果を投稿することに関連しています。

大量のコードを送信せずに、ここに核心があります: (これはテーブル内の一連の送信ボタンです)

<td><input type=\"hidden\" name=\"query\" value=\"$query1\"><input type=\"submit\"       name=\"Submitano\" value='$aa'></td>
<td><input type=\"hidden\" name=\"query\" value=\"$query2\"><input type=\"submit\"  name=\"Submitano\" value='$ab'></td>
<td><input type=\"hidden\" name=\"query\" value=\"$query3\"><input type=\"submit\" name=\"Submitano\" value='$ac'></td>

次に、私が使用する他の結果ページで:

$s1=$_POST['Submitano'].$_POST['query'];

問題は、関連する送信ボタンをクリックすると、選択された正しい POST ['Submitano'] (つまり、$aa または $ac) を取得しますが、常に最後のクエリ (クエリの代わりに $query3) を取得することです。提出物に添付されます。(つまり、$aa は $query1 をプルする必要がありますが、$query3 をプルします)

['query'] ではなく ['Submitano'] を送信しているので、次のページは最後に入力されたクエリを取得しているだけです。もしそうなら、1回の送信で2ビットのデータ(1つは非表示、もう1つは表示)を投稿する方法を誰かが提案できますか?

これが理にかなっていることを願っています。

ありがとう

ポール


すべてのコメントをありがとう。これは私がやろうとしていることですが、まったく別の方法で行うべきでしょうか?

画面 1 – 3 – ユーザーは、画面 4 に渡される各ページで変数を選択します。

画面 4 – 前述の 3 つの変数が読み取られ、25 の事前設定された Mysql クエリに入力されて実行されます (つまり、クエリ 1、クエリ 2 など)。ただし、各クエリにはわずかに異なる要素が含まれているため、25 の異なる回答が得られます。

これら 25 のクエリの結果は、$aa、$ab などの 25 の変数に格納されます。

これら 25 個のクエリの結果を表示するフォームが設​​定され、各回答が送信ボタンに表示されます。(つまり、'Value=$aa' をコーディングした場合、ユーザーがそのクエリに対する回答、つまり '73' を表示してクリックできるようにするためです)。

(基本的に、ユーザーは最初の 3 ページでの選択に基づいて 25 の異なる回答を表示し、さらに知りたい回答を選択する必要があります。)

ページ 5 – このページでは、ユーザーがクリックしたボタンを知る必要がありますが、さらに重要なのは、どのクエリを選択したかということです。

それぞれのネーミングについては、やってみましたが、問題は5ページの拾い方です。25 個のプリセット $_POST が必要になると思いますか? 問題は、他の 24 個の未使用の $_POST が気に入らないことです。それらをelseifループに入れてみましたが、喜びはありませんでした。

しかし、どういうわけかこの解決策に答えがありますか?

また、数人が配列を提案しましたが、私は配列にあまり熱心ではないので、彼らがどのように問題を解決するかわかりませんか?

配列が答えである場合、セットアップに関する詳細情報、またはより具体的には、5ページで正しいものを引き出す方法は素晴らしいでしょうか?

再度、感謝します。

ポール

4

4 に答える 4

3

同じ名前であってはなりません。それらは同じ形式であるため、最後の値が他の値を上書きします。

これらのアイテムが 6 つしかない場合は、これを機能させるために、それらを 3 つの異なる形式でラップすることもできます。

于 2012-08-13T23:14:14.773 に答える
0

配列の形式で要素に名前を付ける必要があります。

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

次のページで同じインデックスを使用するよりも、送信ボタンの場合も同じです。

編集:複数の画面からデータを収集する必要がある場合は、$_SESSION変数を使用することをお勧めします。http://php.net/manual/en/book.session.php

于 2012-08-13T23:57:04.507 に答える
0

フォーム アイテムの名前が同じです。これは、それらの値が互いに効果的に「上書き」されることを意味します。ブラウザーに応じて、最初または最後の値がページに POST されます。

それを修正するには、次のいずれかを実行できます。

1) それらに異なる名前を付けます。

<input type=\"submit\" name=\"Submitano1\" value='$aa'>
<input type=\"submit\" name=\"Submitano2\" value='$aa'>
<input type=\"submit\" name=\"Submitano3\" value='$aa'>

2) それらに配列として名前を付けます。

<input type=\"submit\" name=\"Submitano[]\" value='$aa'>
<input type=\"submit\" name=\"Submitano[]\" value='$aa'>
<input type=\"submit\" name=\"Submitano[]\" value='$aa'>

2 番目のオプションでは、すべての Submitano 項目を配列に入れる $_POST['Submitano'][0] (および 1 と 2) にアクセスできます。この 2 番目の方法は、これらのアイテムを大量に使用している場合により役立ちます。

あなたが何をしているかについての詳細な情報は、必要に応じてより具体的なアドバイスを提供するのに役立ちます.

于 2012-08-13T23:21:01.900 に答える
0

名前は一意である必要があります。非表示の入力はすべて「クエリ」と名付けられているため、最後の入力のみが送信されます。

于 2012-08-13T23:16:35.913 に答える