2016-04-05 110 views
1

我的PHP代碼有問題。我有一個來自數據庫的數據表。在表格中我有一個包含name屬性的輸入。當我已經從數據庫加載數據時,屬性名稱具有相同的值。所以,如果我想發佈它們,只需要輸入最後一個輸入名稱。這是我的代碼:獲取不同的Post方法名稱

<html> 
    <head> 
    <title>Table PHP</title> 
    </head> 
    <body> 
    <form action="execute.php" method="POST"> 
    <table> 
     <tr> 
      <th>No.</th> 
      <th>Registration Number</th> 
      <th>Customer Name</th> 
      <th>Action</th> 
     </tr> 
     <?php 
    include "connect.php"; 
    $sql = mysql_query("SELECT numreg,name FROM registration WHERE (numreg NOT IN(SELECT validation FROM tablevalidation)) "); 
    $no = 1; 
    while($result = mysql_fetch_array($sql)){ 
     echo " 
     <tr> 
      <td>$no.</td> 
      <td><input type='hidden' name='numreg' value='$result[numreg]' />$result[numreg]</td> 
      <td>$result[name]</td> 
      <td><input type='submit' name='validation' value='Validation' /></td> 
     </tr>"; 
     $no++; 
    } 
?> 
    </table> 
    </form> 
    </body> 
</html> 

通過上面的代碼,輸入name ='numreg'將爲每個輸入標籤生成相同的值。因此,如果我在表單中使用POST方法,則即使選擇第一條記錄,也只會執行最後一條記錄。我懷疑這是因爲輸入標籤屬性名稱具有相同的值。那麼,如何在我的輸入標籤中獲得不同的屬性名稱來解決我的問題?請幫忙。

+0

改變輸入類型名稱numreg比嘗試 – iOS

+0

感謝另一名建議@Darji Jigar,但我不認爲它可以解決我的問題,因爲即使我改變輸入名稱numreg到另一個名稱將保持一樣。我用while循環來從數據庫加載數據,從而,其結果將是這樣的:1.​​​​<輸入名稱= 「numreg」/>,​​2.​​<輸入名稱= 「numreg」/>,​​3.​​。 –

+0

你有沒有試過下面的答案? @ Mike.Drinkwater – RJParikh

回答

0

使用下面的代碼。您需要將numreg定義爲數組,以便在後期顯示所有記錄。將name='numreg'更改爲name='numreg_".$no."',以便爲所有人定義唯一的numreg。

<html> 
    <head> 
    <title>Table PHP</title> 
    </head> 
    <body> 
    <form action="execute.php" method="POST"> 
    <table> 
     <tr> 
      <th>No.</th> 
      <th>Registration Number</th> 
      <th>Customer Name</th> 
      <th>Action</th> 
     </tr> 
     <?php 
    include "connect.php"; 
    $sql = mysql_query("SELECT numreg,name FROM registration WHERE (numreg NOT IN(SELECT validation FROM tablevalidation)) "); 
    $no = 1; 
    while($result = mysql_fetch_array($sql)){ 
     echo " 
     <tr> 
      <td>$no.</td> 
      **<td><input type='hidden' name='numreg_".$no."' value='$result[numreg]' />$result[numreg]</td>** 
      <td>$result[name]</td> 
      <td><input type='submit' name='validation' value='Validation' /></td> 
     </tr>"; 
     $no++; 
    } 
?> 
    </table> 
    **<input type='hidden' id='totalRecords' name='totalRecords' value='<?php echo $no; ?>' />** 
    </form> 
    </body> 
</html> 

<?php 

if($_POST['validation']) 
{ 
    for($i=1;$i<=$_POST['totalRecords'];$i++) 
    { 
     **echo $_POST['numreg_$i']."<br>";** 
    } 
} 
?> 
+0

嘗試在你的代碼中進行以上更改並給出你的正面評價@Mike。 Drinkwater – RJParikh

+0

我已經使用它,但它沒有奏效。 –

+0

你能指定你的輸出和慾望輸出嗎? @ Mike.Drinkwater – RJParikh