2017-01-08 7 views
0

配列があり、すべての値を表示する必要があるので、foreachループを使用しました。 ユーザがボタン「READ」をクリックしたときに、oldvisit.phpに渡された値がその行の値であり、SESSIONで試行しましたが、渡された値が最後の配列である必要があります。 もちろん、ページに表示される値は正しい値ですが、それを受け取り、oldvisit.phpに送信するにはどうすればよいですか? これらのコード行はまだフォーム内にあるので、フォームメソッドは使用できません。 私は数日から解決策を見つけることができません!foreachループから変数を渡す

<?php 
foreach($Visits as $x => $x_value) { 
    $_SESSION['data'] = $x; 
    echo "<li><center>". $x . " <input type='button' value='READ' onclick='window.location.href=\"oldvisit.php\" '></li>"; 
} 
?> 
+1

おそらく '$ _GET'を使用しますか? '?row = $ x'を' window.location.href = \ "oldvisit.php \" 'に追加し、* oldvisit.php *で' echo $ _GET ['row'] ' – Xorifelse

答えて

0

あなたの現在のコードは、各ループに$_SESSION['data']を上書きするため、$_SESSION['data']は常に最後のループ値に設定されます。私はあなたのコードに$Visits$x)のキーがあなたが使用する識別子であると仮定しています。

のindex.php

<?php 
foreach($Visits as $key => $value) 
{ 
    echo "<li>" . $key . " <input type='button' value='READ' onclick='window.location.href=\"oldvisit.php?id=".$key."\"'></li>"; 
} 
?> 

oldvisit.php

<?php 
echo $_GET['id']; // Remember security (sql injection, etc...) 
?> 

この例では、スクリプトの間でデータを渡すクエリ文字列(URL内の?後のすべて)を使用しています。クエリ文字列のパラメタには、reserved variable $_GET[]を使用してアクセスできます。

関連する問題