Mootools AJAX форма ответа - PullRequest
       11

Mootools AJAX форма ответа

1 голос
/ 03 марта 2010

Я пытаюсь отправить форму с помощью mootools и в зависимости от ответа от php-скрипта сделать то или иное. Дело в том, что я не могу использовать условные операторы внутри onComplete части кода.

Я упускаю что-то действительно очевидное, пожалуйста, помогите мне:)

$('formName').addEvent('submit', function(e){
    e.stop();                      
    var req = new Request.HTML({
      url       : 'phpUrl.php',
      data      : $('formName'),
      update    : $('modify-me'),
      onComplete: function(){
            $('formName').reset();
            if($('modify-me').get('text') = "1"){
                alert("succeed");
                }else{
                alert("failure");
                }
            }  
    }).send();                    
  });

Это была моя неудачная попытка использовать php-ответ в коде, но, конечно, это не сработало. Излишне говорить, что я новичок во всем этом асинхронном взаимодействии клиент-сервер, но я действительно заинтригован этим.

Ответы [ 2 ]

3 голосов
/ 03 марта 2010

Вы присваиваете в своем операторе if (single =), не проверяя равенство (==). Изменить строку

if($('modify-me').get('text') = "1")

до

if($('modify-me').get('text') == "1")
0 голосов
/ 25 марта 2010

Извините, ребята, может быть, я опоздал ... Я работаю над Mootools 1.2.4 для клиентской части и над PHP для серверной части. Это способ отправки форм и получения ответа от сервера ...

    $('myFormID').set('send', {
        noCache: true,
        onRequest: function(){
            // show some rotating loader gif...
        },
        onComplete: function(response) {
            // hide the loader gif...
            objJson = JSON.decode(response);
            if(objJson.success){
                // do your success stuff...
                alert(objJson.msg);
            } else {
                alert(objJson.msg);
            }
        },
        onFailure: function(){
            alert("Request Aborted.");
        }
    }).send();

В моем случае отправка формы запускается кнопкой, но может быть любой ... давайте посмотрим на сторону сервера (я использую PHP, но любой другой язык хорош)

    if($somethingWentWrong){
    echo json_encode(array("success" => false, "msg" => "Check your form."));
} else {
    echo json_encode(array("success" => true, "msg" => "Data saved."));
}

после всех проверок и проверок на стороне сервера (и, возможно, обновления в базе данных MySql) я просто возвращаю массив Json (вот почему у меня есть JSON.decode (response) на стороне клиента) и затем просто проверьте ключ «success», чтобы узнать, успешно ли прошла отправка на серверной луне. Я просто добавляю небольшое сообщение, которое я показываю в предупреждении. Очевидно, я мог бы использовать массив JSON для отправки клиенту намного большего объема данных, но в этом случае этого достаточно. Надеюсь, что это поможет, и, пожалуйста, дайте мне знать о лучших решениях.

...