2017-10-28 36 views
0

我正在使用html/php/javascript編寫程序。該計劃的目的是爲一個人做一份工作清單(這些工作存儲在數據庫中)。當他們完成一項工作時,他們可以點擊一個按鈕,以便將工作更改爲完成(或真實)。沒有用戶輸入僅僅是用戶點擊以將作業標記爲完成的按鈕。問題是,當按鈕被點擊用於特定作業時,如何更改數據庫中「完成」列中的值?如何更改數據庫中的布爾值

<html> 


<table> 
    <thead> 
     <tr> 
      <th> Business Name</th> 
      <th> Address </th> 
      <th> Done </th> 
     </tr> 
    </thead> 

    <tbody> 
     <?php 

      $servername = "localhost"; 
      $username = "root"; 
      $password = ""; 
      $dbname ="myDB"; 

      $conn = new mysqli($servername, $username, $password, $dbname); 
      if($conn->connect_error){ 
      die("Connection failed: " . $conn->connect_error); 
      } 

      $sql = "Select * from jobs where done = '1'"; 
      $result = $conn->query($sql); 

      while ($row = mysqli_fetch_assoc($result)): 
      $businessname = $row['Business']; 



     ?> 

     <tr> 
      <td><?php echo $row['Business']; ?> </td> 
      <td><?php echo $row['Address']; ?> </td> 
      <td><?php echo $row['Done']; ?> </td> 
      <td> <button type = 'submit' name = 'Done' value = '{businessname}' >Accept</button></td> 
     </tr> 


     <?php endwhile; ?> 
    </tbody>  
</table> 
</html> 
+2

也許'更新作業done設置= 1個其中id ='?或者你問如何發送一個AJAX請求?我不知道你掛在哪裏 – chris85

+0

當用戶點擊按鈕時,我掛斷了改變數據庫中布爾值的值。 – greatsoccerman1

+0

雖然有多個步驟,但目前你只有一個「按鈕」,它什麼都不會做。您可以創建一個提交到PHP處理頁面並更新數據庫的表單,或者您可以讓JS中的偵聽器向PHP處理器發送AJAX事件。 – chris85

回答

0

試試這個:

if($_POST['Done']){ 

global $conn; 

$done = trim($_POST["Done"]); 

$job_id = trim($_POST["job_id"]); 

$query = "UPDATE jobs SET done='$done' WHERE business = $job_id"; 

$res = mysqli_query($conn, $query) or trigger_error($conn->error."[ DB ]"); 

    if(mysqli_affected_rows($conn) > 0){ 
     $_SESSION['answer'] = "<div class='success'>Updated!</div>"; 
     return true; 
    }else{ 
     $_SESSION['edit_page']['res'] = "<div class='error'>Error!</div>"; 
     return false; 
    } 

} 
+0

這對SQL注入開放。 OP不應該嘗試這個。除非在函數中使用'global',否則它是沒有意義的。 OP和這個答案都使用程序代碼。 – chris85