javascript - 如何使用 while 循环为显示的每个输入按钮创建单独的单击事件

标签 javascript php jquery loops mysqli

我在表中列出数据库中的用户。对于每个用户;有一个“批准”和“拒绝”按钮。 我想以这样的方式放置我的代码,当我单击每个用户的每个按钮时,只有批准或拒绝事件应该影响该特定用户?我的表格如下所示:

enter image description here 现在,当我单击一个用户的“批准”时,另一用户的批准事件也会被触发。这是我的批准代码:

$sql = "select * from user_table ORDER BY date_registered DESC LIMIT 10";
if(mysqli_num_rows($result) > 0) 
 {
   while($row = mysqli_fetch_assoc($result)){
    $emailadr = $row["email"];
    $adresses [] = $emailadr;
    echo "<tr>";
    echo "<td>";
    echo $row["firstname"];
    echo "</td>";
    echo "<td>";
    echo $row["lastname"];
    echo "</td>";
    echo "<td>";
    echo $row["idnumber"];
    echo "</td>";
    echo "<td>";
    echo $row["qualification"];
    echo "</td>";
    echo "<td>";
    echo $row["dofa"];
    echo "</td>";
    echo "<td>";
    echo $row["date_registered"];
    echo "</td>";
    echo "<td>";
    echo '<button  name="approve" value='. $row["user_id"].'>Approve</button> <button  name="reject" value='. $row["user_id"].'>Reject</button>';
    echo "</td>";
    echo '</tr>';
     }
            if(isset($_POST['approve'])){
           // Approved user ID is now in $_POST['approve']
           mail($adresses[$row["user_id"]],'subect 
           1','approved','From:email@example.com');
       }elseif(isset($_POST['reject'])){
    // 
    }

  }

print_r($adresses);

最佳答案

插入新用户时,您通常有一个与每一行或用户(通常称为 ID)相关的自动增量列,您可以通过几种方式执行此操作,您需要做的第一件事就是包含该 ID 或值,以便知道哪个要更改的用户:

创建您的按钮:

<button name="approve" value="5"> Approve</button>
<button name="reject" value="5"> Reject</button>

您可以将该值更新为您的用户 ID

然后您可以简单地检查您是否已批准或拒绝该用户:

if(isset($_POST['approve'])){
    // Approved user ID is now in $_POST['approve']
}elseif(isset($_POST['reject'])){
    // Rejected user ID is now in $_POST['reject']
}

获取$adresses您需要将其分配到循环之外。还更新了$adresses []array_push($adresses, $row["email"]);只是因为偏好,但如果您愿意,可以改回来。

<?php

$adresses = array();
$sql = "select * from user_table ORDER BY date_registered DESC LIMIT 10";
if(mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)){
        array_push($adresses, $row["email"]);
        echo "<tr>";
        echo "<td>";
        echo $row["firstname"];
        echo "</td>";
        echo "<td>";
        echo $row["lastname"];
        echo "</td>";
        echo "<td>";
        echo $row["idnumber"];
        echo "</td>";
        echo "<td>";
        echo $row["qualification"];
        echo "</td>";
        echo "<td>";
        echo $row["dofa"];
        echo "</td>";
        echo "<td>";
        echo $row["date_registered"];
        echo "</td>";
        echo "<td>";
        echo '<button name="approve" value='. $row["user_id"].'>Approve</button> <button name="reject" value='. $row["user_id"].'>Reject</button>';
        echo "</td>";
        echo '</tr>';
    }
    if(isset($_POST['approve'])){
        mail($adresses[$_POST["approve"]],'subect 1','approved','From:email@example.com'); 
        //update DB to approved
    }elseif(isset($_POST['reject'])){
        //update DB to rejected
    }

}

print_r($adresses);

?>

关于javascript - 如何使用 while 循环为显示的每个输入按钮创建单独的单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54434053/

相关文章:

javascript - jQuery 用 HTML 替换字母

php - 如何从数据库中获取最后一个值

javascript - 内部 html 不使用我的链接样式表

javascript - 如何在点击 meteor 时显示图标?

javascript - 使用路由的未定义服务 Controller

javascript - 在 jQuery 或 PHP 中创建动态变量

php - 无法连接到 MySql

javascript - 垂直对齐视口(viewport)的 50%

jQuery.css() : Firefox don't return 'auto' values

javascript - Angular js 将更改的值推送到数组中