2012-02-17 22 views
5

たとえば、ループするたびにボタンを生成するループがあるとします。ループが5回実行された場合、5つのボタンがあります。さて、私はループのループごとに変わる$ numのような変数を持っていると言います。ボタンがクリックされたときに各ボタンが個別の$ numを渡すような方法はありますか?ボタン(html/php)を使って別のページにPHP変数を渡す方法はありますか?

$num = 0; 
while(...){ 
    //want this to send $num via POST or GET to xyz.php 
    echo '<button type="submit" value="3" name="editId">Remove</button>'; 
    $num++;//$num changes every instance of the loop 
} 

答えて

1

ボタンの名前&値は次の形式で提出してください。例えば

:ボタン "ボタン" をクリックすると

<?php print_r($_POST); ?> 

<form action="" method="post"> 
    <button type="submit" name="button" value="value">Button</button> 
</form> 

、フォームが送信され、

Array ([button] => value) 

は、フォーム上で出力されます。

$num = 0; while(...){  //want this to send $num via POST or GET to xyz.php 
echo '<button type="submit" value="'.$num.'" name="editId">Remove</button>';  
$num++;//$num changes every instance of the loop 
} 
0

自分の状況にこれを適用すると、1のようなものを使用することができます:

$num = 0; 
while(...){ 
    //want this to send $num via POST or GET to xyz.php 
    echo '<form method="post" action="xyz.php">'; 
    // Pass $num into the form value 
    echo '<button type="submit" value="' . $num. '" name="editId">Remove</button>'; 
    echo '</form>' 
    $num++; 
} 

どれがクリックされてもxyz.phpとして$_POST['editId']となります。

この方法は、各ボタンの別のフォームを作成しているが、単一のフォームを使用して、クリックされたボタンに基づいて隠し入力に値を割り当てることになるJavaScriptを使用してそれを行うための他の方法があります。 1つの入力値だけが送信される場合、複数の<form>オプションがおそらくコード化するのが最も簡単です。

+0

@highway of life、今これは面白いです。もう一度私はあなたが私の答えをコピー/ペーストしたと思った。 :)あなたが実際に最初に答えたと思います。そして、私たちは両方とも、OPがこれらを入れていると仮定したと思います。

TecBrat

+0

LOL !!それはとても面白いです...私は同じフォーマットを連結に使用していたので、私の答えは何とか2回ポストされたと考えました。これを行うと –

4

最も簡単な方法は、<button>タグのそれぞれを囲む<form>を作成することです:あなたはほとんどそこにいる

$num = 0; 
while(...){ 
    // Set $num as the value of each button 
    echo "<button type='submit' value='{$num}' name='editId'>Remove</button>"; 
    $num++;//$num changes every instance of the loop 
} 
+0

問題は、あなたが不必要である5(またはそれ以上) '' タグで終わるだろうということです。 –

+0

ありがとう、これは私が探していたものです! –

+0

複数のフォームは不要です。複数の 'button'要素を持つフォームは、フォームを送信するために押されたボタンの名前/値を渡します。 –

0

あなたは非常に近いです。ボタンのvalue属性に$numを挿入してください。 $_POST['editId']

$num = 0; 
while(...){ 
    //want this to send $num via POST or GET to xyz.php 
    echo '<button type="submit" value="'.$num.'" name="editId">Remove</button>'; 
    $num++;//$num changes every instance of the loop 
} 

あなたに$numの値を送信し[ Remove ]ボタンをクリックすると、<form>タグで、このコードブロックを囲む

関連する問題