Две формы PHP. вторая форма получает данные из первой. но обновление второй страницы показывает ошибку - PullRequest
0 голосов
/ 23 апреля 2019

Я отображаю список информации об устройствах из базы данных. Каждое устройство будет иметь кнопку «Показать предупреждение». Пользователь может нажать «Показать предупреждение», и я использую скрытое поле (значение из скрытого поля для идентификации) для отображения предупреждающих сообщений устройства. Для каждого предупреждения из базы данных есть кнопка подтверждения (список предупреждений с кнопкой подтверждения для каждого). Пользователь может нажать кнопку «Принять», чтобы состояние предупреждения изменилось с непринятого на принятое (и страница обновится). Проблема при обновлении, так как на первой странице нет информации, php возвращает ошибку.

//page-1.. under each category (like electrical, mechanical, more than one types of devices
//device can be identified by using ID


echo '<tr><th>Category Name</th>';
echo '<td >' . $row['category']. '</td></tr>';

echo '<tr><th>Device ID</th>';
echo '<td >' . $row['ID']. '</td></tr>';

//form section. 

echo "<form action = alarms_list_display.php method =post>";
echo '<tr>';

echo "<td >"." <input type=submit    name=acceptID value=ShowAlarm"."  </td>";
echo "<td >"." <input type=hidden  name=hiddenID  value =". $row["ID"]."  </td>";
echo "</tr>";
echo "</form>";


//second page..    alarms_list_display.php

include ("DBconnect.php");
$conn= mysqli_connect( $dbhost, $dbuser, $dbpass, $db );

if(isset($_POST ['acceptID']))
    {$deviceID = $_POST['hiddenID'];

    }
     else {$deviceID='';}


//above code is problematic. as it is available only when i submit the first page.
//when updating the second page (and refreshing), $deviceID is not available anymore. 



//listing all warnings related to that device when user clicked the 'ShowAlarm' button.

if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);}
$sql = "SELECT * FROM dataTable WHERE ID='$deviceID' ";
$result = $conn->query($sql);

//form with buttons to accept warning
//skipped table heading parts
//each warning will have a serialNumber. Using to accept the warning and update the database

if ($result->num_rows > 0) {
         while($row = $result->fetch_assoc()) {
           echo "<form action = alarms_list_display_copy.php method =get>";


            echo "<td>" . $row["Date"]. "</td>";
            echo "<td>" . $row["Warning"]. "</td>";

            echo "<td>"." <input type=hidden  name=hidden value =" .$row["SerialNumber"]."  </td>";
            echo "<td>"." <input type=submit    name=accept value=AcceptAlarm id=button1 class = formclass"."  </td>";
            echo "</tr>";

           echo "</form>";
  } else { echo "0 results"; }



//code to update when clicking the AcceptAlarm button.

  if (isset($_GET['accept'])){
        $query= "SELECT WarningAccept FROM dataTable WHERE  SerialNumber= '$_GET[hidden]' ";
        $result = mysqli_query($conn, $query);
        while($row = $result->fetch_assoc()) {

        $updateQuery = " UPDATE dataTable SET WarningAccept=1 WHERE  SerialNumber= '$_GET[hidden]' ";
        mysqli_query($conn, $updateQuery);

     }


Возможно отправить первую страницу. он будет отображать все предупреждения, соответствующие устройству. Но при принятии предупреждения страница обновится и $ deviceID больше не будет. поэтому после обновления не будет отображаться никаких предупреждающих сообщений. как это изменить ??? любая помощь

1 Ответ

0 голосов
/ 23 апреля 2019

Ваше second page получает значение только один раз, когда <form action = alarms_list_display.php method =post>"; отправляется, поэтому вы получаете ошибку при обновлении второй страницы, потому что тогда теряется массив $_POST

РЕШЕНИЕ

Вы можете установить действие <form action = alarms_list_display.php method =post>" для той же страницы и сохранить значения в сеансах, затем перенаправить его на вторую страницу, а затем использовать значения из ваших сеансов

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