0

2 つの php ページがあり、最初の 1 つのボタンでチェックされているボタンを確認して、次の php ページでその値を使用できるようにしたいのですが、問題は、送信ボタンが while ループに入っていて、できないことです変数を使用している可能性がありiますが、方法がわかりません。最初のページのフォームは次のとおりです。

<form name="myForm" action="admin.php" method="post">   
<table BORDER=1....... > <?php $link = mysql_connect('localhost', 'root', '');  if
(!$link) { 
   die('Could not connect: ' . mysql_error()); }
   mysql_select_db("nowdeal"); 
   $query = mysql_query("SELECT * FROM application ORDER BY date");
   WHILE($rows = mysql_fetch_array($query)):
         $date = $rows['date'];
         $username = $rows['username'];
         $advers = $rows['advers'];
         $id = $rows['id'];
         echo '<tr>';
         echo "$date";
          echo "</br>";             
          echo "$username";
          echo "</br>";
          echo "$advers";
          echo "</br>";
          echo "$address";
          echo "</td>";
          echo '<td align="left">';
          echo '<input type="submit" name="action" value="edit" />';
          $_SESSION["id"]=$id;
          echo '</td>';
          echo '</tr>';
          endwhile;  ?>    </table> </form>

次のページでは、php コードは次のようになります。

<?php session_start();
  $con = mysql_connect("localhost","root","");    if (!$con)      {  
  die('Could not connect: ' . mysql_error());   }
  mysql_select_db("nowdeal", $con); 
  mysql_query("SET names 'utf8'");
  if(isset($_POST['paid']))     
  { if($_POST['paid']=="yes")  ///is a value from a drop down list 
  {mysql_query("UPDATE application SET paid='yes' WHERE .....");}  

 ///i want to be like : WHERE id=session[id], but when it works it
 takes only   //the last id ,so be upadated the last row only 
  ?>
4

1 に答える 1

0

新しいフォームに値を渡したい場合は、非表示のフォーム要素に値を挿入します。

echo '<input type="hidden" name="sessionId" value="' . $id . '"/>';

次のページで、次を使用してこの値にアクセスできます。

$_POST['sessionId'];

PSデータへのアクセス方法を本当に変更する必要があります。最初にデータにアクセスし、できれば外部クラスを使用してから、レンダリングされた出力でデータを使用します。HTML と PHP のデータ ロジックを、あたかも最良の芽であるかのように混在させないでください。

于 2013-01-12T11:16:42.010 に答える