Указание на успех с Ajax-скриптом из формы - PullRequest
0 голосов
/ 10 мая 2011

У меня есть форма, которая управляет размером изображения, которое публикуется с помощью этого скрипта ajax. Скрипт и мой контроллер работают нормально. У меня вопрос, как мне добавить сообщение об успехе в этот скрипт jquery? Если бы я использовал обычный скрипт $ .ajax (), это было бы легко.

Я получил этот скрипт, используя факел формы для codeigniter, и хотел бы узнать, как указывать на его успех. Мне кажется, что "функция (данные)" указывает на сбой, хотя я не понимаю, как это происходит. В любом случае это не работает, если форма отправлена ​​пустой.

$(document).ready(function() {
$("#form").submit(function() {
    var image = $("#image").val(); 
    $.post("/post/process", { image:image },
    function(data){
        $("#image_error").html(data.image);
    },'json');
});
});//this comes from form torch

Контроллер является стандартным средством для работы с изображениями Форма

<?=form_open("/post/process", 'onsubmit="return false;" id="form"')?>
<p>
<label for="image">Image</label>
<span id="image_error" class="error"></span>
<input type="text" name="image" id="image" />

Я хотел бы добавить что-то вроде этого внизу формы

 <div id="success"></div>

Спасибо за чтение

Ответы [ 2 ]

2 голосов
/ 10 мая 2011

Лично я предпочитаю вам функцию $.ajax, потому что она дает вам только одну функцию, которую вы можете использовать для всех вызовов AJAX. Кроме того, он позволяет предоставлять две функции: одну для выполнения в случае успешного выполнения запроса и другую для выполнения в случае сбоя.

Согласно документации (http://api.jquery.com/jQuery.post/), метод $.post вызывает только указанную вами функцию, если операция завершается успешно.

Кроме того, если вам нужно заставить скрипт ждать индикации успеха или неудачи, прежде чем пользователь сделает что-либо еще, рассмотрите возможность использования метода $.ajax с параметром async:false.

Есть несколько способов выполнить то, что вы описали: один из способов - написать что-то подобное для функции, которую вы передаете $.post:

function(data)
{
    $(document).append('<div id="succeed"></div>');
}
1 голос
/ 10 мая 2011

Если я не ошибаюсь, вы можете сделать что-то похожее на это:

response = $.post(...);

И ответ может содержать сообщения об успехе и ошибках. Тогда вы можете проверить это, используя условие if и написать в свой div:

$("#success").html('your html')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...