Очистка поля ввода в зависимости от обратного вызова - PullRequest
0 голосов
/ 02 августа 2011

У меня есть простой скрипт, который содержит две страницы - script.php и function.php. Script.php содержит одно поле ввода с идентификатором # code , одну ссылку с идентификатором # submit и функцию jquery

$('#submit').click(function () {
    $.ajax({
    url: 'function.php',
    type: "POST",
    data: "text=" + $("#code").val(),
    dataType: 'text',
    success: function(data) {
        $('#info').html(data);              
            }
        });         
    return false;
    });

<ч /> Как очистить # code значение поля ввода в зависимости от результата, возвращаемого из function.php?
Например, если запрос не завершен, function.php покажет сообщение только в поле # info , но если запрос завершен, скрипт покажет сообщение и очистит значение поля ввода.

Ответы [ 3 ]

0 голосов
/ 02 августа 2011

Рассмотрите возможность возврата данных JSON из function.php, так что-то вроде этого

{"clearCode":"true","info":"Some HTML"}

Затем вы можете использовать функцию jQuery getJSON .

Это означает, что вы можетевозвращает логическое значение, которое решает, очищать ли # код или нет, а также возвращать html для # info

0 голосов
/ 02 августа 2011

Из вашего примера вы можете вернуть определенный код HTTP:

На PHP:

if(not_valid) { Header("HTTP/1.1 403 Forbidden"); die(); }

На JavaScript:

$.ajax({ ...,
         success: function() { /*ok*/ },
         statusCode: {
            403: function() { /*wrong*/ }
          }
      )};
0 голосов
/ 02 августа 2011

возвращает любой статус с вашей php-страницы, например, успех или сбой, а затем проверяет его в методе успеха, потому что успех выполняется, если ajax-вызов успешно завершен независимо от результата,

вы можете сделать

$('#submit').click(function () {
    $.ajax({
    url: 'function.php',
    type: "POST",
    data: "text=" + $("#code").val(),
    dataType: 'text',
    success: function(data) {
        if (data == "success")
        {
            $("#code").value("");
        }
        else
        {
            $('#info').html(data);
        }
    }
    });         
    return false;
});

надеюсь, это поможет.

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