2013-10-24 11 views
0

我以前提交過這個問題,但沒有解決。我曾在我正在嘗試構建的網站的其他部分上工作,並且我又回到了這個問題。以下是OP; here是上一個問題。從另一頁上的while循環之外的mysql數據庫獲取表單發佈複選框變量

我已閱讀thisthis後,看起來是最相似的,但它沒有解決我的問題。

我有下面的while循環工作來顯示我的數據庫結果。在while循環的問題的具體線路是這樣(注意:它是一種形式中):

while($row = mysqli_fetch_array($result)){ 
<input type='checkbox' name='check_box_delete[]' value='".$row['BookingNo']."'> 
} 

形式數據的其餘部分穿過細除外複選框。在下面的PHP頁面,我有這樣的:

if(isset($_POST['check_box_delete'])){ 
    foreach($_POST['check_box_delete'] as $id){ 
     $sql="DELETE FROM bookings WHERE BookingNo='".$id."'"; 
     if (!mysqli_query($con,$sql)){ 
      die('Error: ' . mysqli_error($con)); 
     } 
    echo $id." deleted."; 
} 

頁回聲deleted,但沒有相關的$ id。我懷疑我的processor.php根本沒有得到預訂號碼。

乾杯

+0

你看到了什麼,如果你在瀏覽器中查看源文件。複選框中的值是否存在? – Barmar

+1

var_dump($ _ POST ['check_box_delete']); –

+0

@Barmar,謝謝。我感到非常愚蠢,但在查看源代碼後,我注意到複選框字段爲空。我的MySQL查詢沒有得到BookingNo,因此沒有將它傳遞到複選框。 – jsc

回答

0

您的形式發送給好起來的,除了一個事實,即$ id爲外循環似乎頁。以下對我有用。

<form action = "process.php" method = "POST"> 

<?php 
$mysqli = new mysqli("localhost", "root", "", "dbname"); 

if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$query = "SELECT * FROM tablename"; 
$result = $mysqli->query($query); 

while($row = mysqli_fetch_array($result)){ 
    echo "<input type='checkbox' name='check_box_delete[]' value='".$row['BookingNo']."'>"; 
} 

?> 

<input type = "submit"> 

</form> 

然後proccess.php

<?php 

if(isset($_POST['check_box_delete'])){ 
    foreach($_POST['check_box_delete'] as $id){ 
     $sql="DELETE FROM bookings WHERE BookingNo='".$id."'"; 
     if (!mysqli_query($con,$sql)){ 
      die('Error: ' . mysqli_error($con)); 
     } 
     echo $id." deleted.<br>"; 
    } 
} 

?> 
相關問題