Как создать отдельное событие нажатия для каждой кнопки ввода, отображаемой с помощью цикла while - PullRequest
0 голосов
/ 30 января 2019

Я перечисляю пользователей из базы данных в таблице.для каждого пользователя;есть кнопки «Подтвердить» и «Отклонить».Я хочу, чтобы мой код был таким, чтобы при нажатии каждой кнопки для каждого пользователя только конкретное пользователь могло повлиять только на утверждение или отклонение?Моя таблица выглядит так:

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);

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Да .. Передача содержимого или какого-либо уникального идентификатора решит эту проблему.

0 голосов
/ 30 января 2019

При добавлении новых пользователей у вас обычно есть столбец с автоинкрементом, который относится к каждой строке или пользователю (обычно называемый идентификатором), вы можете сделать это несколькими способами. Первое, что вам нужно сделать, это включить этот идентификатор или значение, чтобы вы знали, какиеизмените пользователя:

Создайте свои кнопки:

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

Вы бы обновили значение до своего идентификатора пользователя

Затем вы можете просто проверить, одобрил ли вы или отклонилпользователь:

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);

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...