2017-01-19 6 views
1

から名前値を取得します。しかし私はそれが十分な説明を提供していない、私が来た最も近いthis answerた、この問題の解決のために検索しました。PHPは送信ボタン

次のボタンは、大会名やトーナメント番号の両方が含まれています。

<input type="submit" name="<?php echo $tournament.$weekNumber ?>" />

トーナメントはすなわち、異なる名前&ラウンド番号を持つ異なる場合があります。ボタンをクリックしてフォームが送信されると、ボタン名に含まれるトーナメント名とラウンドナンバーはどうやって取得できますか?

私はそれは私に連結ラウンド数と大会名を与えます...

foreach($_POST as $name => $content) { //echo "The TOURNAMENT NAME IS: $name <br>"; $tournament = $name; }

に問題を試してみました....

私はトーナメントを分離するためにsubstr()を使用することができますし、ラウンド私はtournameの両方を必要とする

...それは文句を言わないトーナメント名以来、仕事と丸い数字は変えることができますnt名と週番号ボタン名で連結されていますname="<?php echo $tournament.$weekNumber ?>"

+0

try name = "<?php echo $ tournament。" * "。$ weekNumber?>" *を使って爆発してください。 –

+0

'[]'を使って配列を送信することができます。これは文字列を分割するよりも扱いが簡単です。例えば。 ''は '$ _POST ['t1'] [17] == 'foo''のようなものになります。 – Yoshi

答えて

2

はこれを試してみてください: はのasymbol、その後、分割して名前を区切ります。あなたは隠された値を使用しない理由

<input type="submit" name="tournament[<?php echo $tournament ?>][<?php $weekNumber ?>]" /> 

、その後

if (isset($_POST["tournament"]) { 
foreach ($_POST["tournament"] as $tournament => $weeks) { 
     foreach ($weeks as $round=> $value) { 
      //Do stuff 
     } 
} 
+0

これは素晴らしいです。唯一の問題は、トーナメント名にラウンドが連結されたままであるが、ラウンドは完璧に表示される。例 '$ tournament = PremeirLeague_5'' $ round = 5'トーナメント名に連結された '_5 'をどうすれば取り除くことができますか?ありがとう – gekkogurru

+0

私の悪い点は単に 'explode()'関数 – gekkogurru

2

両方の変数を連結すると、分割に使用できる一意の文字列を追加できます。 PHPコードで

例えば

<input type="submit" name="<?php echo $tournament.'|-|'.$weekNumber ?>" /> 

、あなたはこれを行うことができます。

foreach($_POST as $name => $content) { 
    //echo "The TOURNAMENT NAME IS: $name <br>"; 
    list ($tournament, $weekNumber) = explode('|-|', $name); 
} 
+0

ありがとう、今すぐ実装し、フィードバックを提供します – gekkogurru

1

<input type="hidden" name="tournament" value="<?php echo $tournament ?>" /> 
<input type="hidden" name="weekNumber " value="<?php echo $weekNumber ?>" /> 

<input type="submit" name="<?php echo $tournament.$weekNumber ?>" /> 

これで両方の値を取得できます。

1

:これをしないのはなぜ

<input type="submit" name="<?php echo $tournament.'_'.$weekNumber ?>" /> 

foreach($_POST as $name => $content) { 
     //echo "The TOURNAMENT NAME IS: $name <br>"; 
     list($tournament, $round) = explode('_', $name); 
    } 
関連する問題