Сбросить данные формы при выгрузке - PullRequest
0 голосов
/ 26 сентября 2011

Я использую этот код:

if(isset($_POST['btitle'])) {
    if(count($errors) > 0) {
        foreach($errors as $error)
            $errContent .= "<li>".$error;
        echo notification(
            $errContent,
            FALSE,
            "The following errors were encountered:"
        ) . "<div style='margin-bottom: 10px;'></div>";
    }
    else {
        echo notification(
            "<li>New form added!",
            TRUE,
            "Success:"
        ) . "<div style='margin-bottom: 10px;'></div>";
    }
}

Когда я набираю что-то во входном файле с именем «btitle» и нажимаю кнопку «Отправить», все в порядке, пока я не обновлю страницу - она ​​должна потерять данные и начать заново после обновления, но она продолжает говорить «Успех:» даже если ввод 'btitle' равен пуст .

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 26 сентября 2011

вам нужно перенаправить пользователя на ту же страницу и потерять данные поста.

header("Location: file.php?success=true");//or ?errors[]=blabla
exit();

сейчас, на той же странице (file.php) вам нужно:

if(isset($_GET['success']) && $_GET['success'] == true){
    //handle true
}else if(/* here you can ask about errors or what ever */){

}

Кстати, если вы этого не сделаете, вся отправляемая форма будет действовать снова, как если бы вы отправили ее повторно.например, если вы вставляете данные в базу данных, они будут вставляться снова и снова при обновлении страницы, поэтому, если вы перенаправите в соответствии с предложением, вы потеряете опубликованные данные, и теперь вы сможете показать ошибки или успех.

0 голосов
/ 26 сентября 2011

Когда вы нажимаете обновить, ваш браузер отправляет данные POST на страницу.Этот вопрос задавался много раз, например здесь и здесь .Посмотрите на ответы на некоторые из этих вопросов, чтобы получить представление о том, что вы можете сделать.

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