Почему HTML в функции php не виден в исходном представлении - PullRequest
0 голосов
/ 29 сентября 2018

функция, которая запускается, когда я хочу изменить статус клиента.

// deletes (sets inactive) client
function setClientStatus($client) {

if ($_GET['action'] == "setinactive") {

//database functions
$sql = 'UPDATE clients SET active="0" WHERE id="'. $client .'"';
$result = query($sql);
confirmQuery($result);

//set message to user to display
$_SESSION['error'] = false;
        $msgs[] = "Client was set to inactive and removed from the list!";
        $_SESSION['userMsg'] = $msgs;

}

    if ($_GET['action'] == "setactive") {

//database functions
$sql = 'UPDATE clients SET active="1" WHERE id="'. $client .'"';
$result = query($sql);
confirmQuery($result);

//set message to user to display
$_SESSION['error'] = false;
        $msgs[] = "Client was successfully restored!";
        $_SESSION['userMsg'] = $msgs;

}


//display clients page with changes made
redirect('?page=clients');



}

функция, которая отображает сообщение.

 //function that shows message and styles accordingly
 function message($msgs) {

if(!empty($msgs)) {


        foreach ($_SESSION['userMsg'] as $msg) {
            if ($_SESSION['error'] == false) {
            echo '<div class="noError">'.$msg.'</div>';
            } else {
                echo '<div class="error">'.$msg.'</div>';

            }
        }
    }
            unset($_SESSION['userMsg']);
            unset($_SESSION['error']);
 echo "hello";
}

здесь я вызываю его на своей странице ....

div class="pageContainer">

<?php
    //display messages
message($_SESSION['userMsg']);

?>
</div>

Теперь, когда все запущено, и я выбираю редактировать и статус клиента (или добавить клиента, отредактировать клиента, так как все они имеют один и тот же раздел сообщения, только с другим сообщением), я вижу сообщениеотображается на экране.У меня есть сценарий JavaScript, который скрывает сообщение через 5 секунд, но оно не скрывается.после просмотра исходного кода страницы я замечаю, что часть кода не видна.Опять же, я вижу, что отчетливо видно сообщение, которое, как предполагается, должно быть там "Клиент был установлен неактивным и удален из списка!"(или любое другое сообщение, отображаемое для отображения), но оно НЕ отображается в html источника представления.

рис. страницы, загруженной сообщением

, здесь указан источник просмотра.....

<div class="pageContainer">



    <div>

** обновлено **

этот небольшой примерный скрипт отображает HTML, но мой скрипт выше ...

function setError() {
        $error[] = "Password field is to short";
            $_SESSION['userMsg'] = $error;
        //return $_SESSION['msg'];

        }

function message($errors){

    if(!empty($errors)) {
        foreach ($_SESSION['userMsg'] as $error) {
            echo $error.'<br>';
        }
    }
            unset($_SESSION['userMsg']);
}

1 Ответ

0 голосов
/ 29 сентября 2018

Если я вас правильно понял, вы хотите отобразить $msgs, так почему вы итерируете $_SESSION['userMsg']?

Возможно, $_SESSION['userMsg'] равно нулю или пусто.Если вы хотите отобразить $msgs, просто повторите его.А позже добавьте в сессию, если действительно нужно.В вашем коде вы всегда сбрасываете $_SESSION['userMsg'] в конце функции, возможно, тогда оно всегда будет нулевым.Я не увидел $_SESSION['userMsg'], необходимых здесь:

//function that shows message and styles accordingly
function message($msgs) {
    if(!empty($msgs)) {
        foreach ($msgs as $msg) {
            if ($_SESSION['error'] == false) {
            echo '<div class="noError">'.$msg.'</div>';
            } else {
                echo '<div class="error">'.$msg.'</div>';
            }
        }
    }
    unset($_SESSION['error']);
    echo "hello";
}

ОБНОВЛЕНО

После прочтения ваших комментариев, это связано с проблемой JavaScript.Вы должны добавить идентификатор в <div>, чтобы он работал.

            if ($_SESSION['error'] == false) {
            echo '<div id="noError" class="noError">'.$msg.'</div>';
            } else {
                echo '<div id="error" class="error">'.$msg.'</div>';
            }
...