2017-10-28 70 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