Невозможно проверить PHP empty () в форме AJAX - PullRequest
0 голосов
/ 06 июня 2018

Я хочу проверить ввод формы с помощью PHP.Empty() в моем php-файле не возвращает никакого результата (сообщение об ошибке не отправлено, форма отправляется).Форма работает - она ​​отправляет поле - но я могу отправить пустое поле.AJAX возвращает успеха независимо.<?php echo $error;?> выдает ошибку unidentified variable из-за того, что функция empty() не возвращает ничего.Я должен отметить, что это 3 разных файла.

PHP:

<?php
$error= ''; 
$title = '';

if(isset($_GET)) {

    if (empty($_GET['page_title'])) {
        $error= 'Name is required';
    } else {
        $title = $_GET['page_title'];
    }
}
?>

AJAX (Jquery)

$(function() {
$('form').submit(function(e) {
    e.preventDefault();
    $.ajax({
        method: 'GET',
        url: 'save_to_WP.php',
        data: {
            page_title: $('input[name="page_title"]').val()
        },
        success: function(e){
            alert('yay');
        },
        error: function(e) {
            alert('Error');
        }
    });
}); 

HTML

<form>
    <input type = "text" name="page_title" />
    <span class="error"><?php echo $error;?></span>
    <button type = "submit">Save</button>
</form>

Я ранее опубликовал этот кусок кода, но я считаю, что проблема, о которой я говорил, была на самом деле симптомом ЭТОЙ проблемы.Неудивительно, что я не получил ответ, который работал, я задавал неправильный вопрос.

Буду признателен за любую помощь или предложения.

1 Ответ

0 голосов
/ 06 июня 2018

Вы должны вернуть ответ об ошибке с сервера, чтобы вызвать обратный вызов ошибки ajax jQuery:

<?php
    $error= ''; 
    $title = '';

    if(isset($_GET)) {
        if (empty($_GET['page_title'])) {
            $error= 'Name is required';
            header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error', true, 500);
            echo $error;
        } else {
            $title = $_GET['page_title'];
            echo 'ok!';
        }
    }

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