循环更新值

时间:2017-12-22 04:30:57

标签: php jquery

我正在开发在线考勤。但我陷入了循环状态 我想先显示我的代码

<tbody>
        <?php
        $database = new Database();
        $db = $database->getConnection();
        $user = new User($db);
        $stmt = $user->atten();
        while($ro22 = $stmt->fetch(PDO::FETCH_ASSOC))
        {

        ?>
            <tr>
                <td><input name ="uname" id ="uname" onBlur="checkAvailability2()" style ="border:none" value = "<?php echo $ro22['user_id'] ?>"/></td>
                <td><?php echo $ro22['first_name'] ?> <?php echo $ro22['last_name'] ?></td>
                <td><?php echo $ro22['parent_contact'] ?></td>

                <td><input type="button" value="<?php echo $ro22['ai'] ?>" id="pres" name="pres" onclick="return change(this);" onBlur="checkAvailability()" class="w3-button w3-teal"/></td>

            </tr>
        <?php } ?>

 </tbody>

这是输出

output

我想要什么

  

我希望更新存在,缺少基于101,102,103 ...值的值

我试了很多但都失败了。请帮帮我 提前致谢

2 个答案:

答案 0 :(得分:0)

您需要在点击时拨打该页面并传递user_id。使用jQuery很容易做到:

function change(row) {
    $.post('thispage.php', { user_id: $(row).val() }, function(){ window.location.reload(); } );
}

然后在PHP中收到帖子:

if (!empty($_POST['user_id'])) {
    /* toggle admission status */
}

请求完成并切换状态后,页面将重新加载。

答案 1 :(得分:0)

这是一个一般的例子。它由您PHP程序(AJAX sender)组成,我将其重写为我认为您想要的方式,javascript文件(包含AJAX函数)和另一个PHP文件(AJAX request receiver)。

您可以通过更改接收use-cases文件中的数据库查询来获得不同的PHP

Javascript文件(AJAX):

// Send the `id` of the element
function checkAvailability(id)
{
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function()
  {
    // This `if` underneath is success. It means we got a response back
    if (this.readyState == 4 && this.status == 200)
    {
      if(this.responseText == "OK")  
      {
          alert('ID: ' + id + ' changed. Response: ' + this.responseText);
          document.getElementById("demo").innerHTML = 'The student has been updated.';
      }
      else if(this.responseText == "Not OK") 
      {
          alert('Something went wrong with id: ' + id);
      }
    }
  };
  // For example you send a request to attendance.php sending `id` info
  // - attendance.php just needs to echo the response to answer back
  xhttp.open("GET", "attendance.php?id=" + id, true);
  xhttp.send();
}

主PHP页面(发送请求的文件):

// U need jQuery to be able to send AJAX requests. Copy this, add to your html
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<?php
  $database = new Database();
  $db = $database->getConnection();
  $user = new User($db);
  $stmt = $user->atten();

  echo '<table>
  <tr>
    <th>Student ID</th>
    <th>Student name</th>
    <th>Phone number</th>
    <th>Today\'s attendance</th>
  </tr>';
  while($ro22 = $stmt->fetch(PDO::FETCH_ASSOC))
  {
    echo '<tr>
      <td><input name ="uname" id ="uname" onBlur="checkAvailability2()" style ="border:none" value="'.$ro22['user_id'].'"/></td>
      <td>'.$ro22['first_name'].' '.$ro22['last_name'].'</td>
      <td>'.$ro22['parent_contact'].'</td>
      <td><input type="button" value="'.$ro22['ai'].'" id="pres" name="pres" onclick="change(this.id);" onBlur="checkAvailability(this.id)" class="w3-button w3-teal"/></td>
    </tr>';
   }
   echo '</table>';
?>

收件人档案:

 <?php
     $conToDatabase = ... // Here goes DB connection data

     if(isset($_GET['id']) && ctype_digit($_GET['id']))
     {
          $clean['id'] = $_GET['id'];
     }

     // Query your DB here using variable $clean['id'] as ID
     $querySuccess = ... 

     // if query successful echo 'OK';
     // else echo 'Not OK';
 ?>