2016-05-07 3 views
-1

私はフォームを作成しようとしています。提出すると、クエリを実行します。複数のフォームと複数のクエリが存在することになりますが。 [これはwhileループの中にあるためです]。

if ($_POST['Test']) { 
//Query here 
} 

<form name="Test" method="post"> 
     <input type="submit" name="Test" value="Click here"/> 
</form> 

このようにすればうまくいきます。 whileループでは、ページにある数に応じて、個別には動作しません。

私は入力の名前と$ _POSTのテスト方法 "$ id"に変数を追加しようとしました。しかし、それは動作していないようです。これは以下の私の完全なコードです。

if ($_POST['Test'.$id.'']) { 
//Query here 
} 

<form name="Test'.$id.'" method="post"> 
     <input type="submit" name="Test'.$id.'" value="Click here"/> 
</form> 

どうすればできますか?

おかげ

+0

'if(isset($ _ POST ['test'])){ //あなたがテストをクリックした場合。 } ' –

+0

issetを使用することによって、それぞれの人が作成されますか? – Gesset

+0

達成したいことを説明してください。多くのフォームを作成するだけでは冗長です。 –

答えて

1

私はあなたがこれを必要とする理由を知っているが、あなたが望むようにするためにこれをしようとしないでください。

if ($_POST['Test'.$id]) { 
//Query here 
} 

<form name="Test<?php echo $id;?>" method="post" action=""> 
     <input type="submit" name="Test<?php echo $id;?>" value="Click here"/> 
</form> 
+0

こんにちは、これは働いた。どうもありがとう – Gesset

1

異なる名前の送信ボタンを使用すると間違っています。何個のボタンがあるのか​​、次に何をするのか分かりません。

あなたの複数のフォームが何であるかはわかりませんが、いくつかの類似したアイテムを扱っていると思いますが、いくつかの仮説的なデータベースレコードがあると思います。この場合、これを行う必要があります。

同じinputという名前で必要な数のフォームを生成します。たとえば、リスト内のユーザー名を更新する場合は、次のようにします。

<form name="" method="post"> 
    <input type="hidden" name="userid" value="1" /> 
    <input type="text" name="username" value="John" /> 
    <input type="submit" name="Test" value="Click here"/> 
</form> 
<form name="" method="post"> 
    <input type="hidden" name="userid" value="2" /> 
    <input type="text" name="username" value="Max" /> 
    <input type="submit" name="Test" value="Click here"/> 
</form> 
<form name="" method="post"> 
    <input type="hidden" name="userid" value="3" /> 
    <input type="text" name="username" value="Sam" /> 
    <input type="submit" name="Test" value="Click here"/> 
</form> 

すべてのフォームに同じ名前の入力があります。

if (isset($_POST['Test'])) { 
    echo $_POST['userid'],', ',$_POST['username']; 
    // do other stuff 
} 
0

:あなただけのすべての同様の形態のためハンドラを使用その後

userid 
username 
Test 

:あなたは常にキーを配列として$_POSTを持つことになります - だから、あなたが提出どちら形成PHPをテンプレート言語として使用します。 HTMLを記述し、短いタグを含める。

ほとんどのものは1つのフォームで処理できます。 "name [id]"のような入力名は、PHP配列$_POST['name'] = [ 'id' => 'some_value']になります。複数の送信ボタンは、namevalueが表示されておらず、表示されている<button>タグで実現できます。

<?php 
if(isset($_POST['which_button'])) 
    echo "Button $_POST[which_button] has been pressed."; 

if(isset($_POST['some_choice'])) 
    var_dump($_POST['some_choice']); 

$some_field = isset($_POST['some_field']) ? $_POST['some_field'] : ''; 

$some_data_from_db = 'DUMMY DATA'; 
?> 

<form method="post"> 
    <input name="some_field" type="text" value="<?php echo $some_field?>"> 
    <input name="some_data_from_db" type="text" value="<?php echo $some_data_from_db?>"> 

    <input type="checkbox" name="some_choice[a]">a 
    <input type="checkbox" name="some_choice[b]">b 
    <input type="checkbox" name="some_choice[c]">c 

    <button name="which_button" value="1">Button 1</button> 
    <button name="which_button" value="2">Button 2</button> 
    <button name="which_button" value="3">Button 3</button> 
</form>