Какая-то помощь ajax? - PullRequest
       1

Какая-то помощь ajax?

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

У меня есть php-скрипт, который принимает данные из пользовательской формы и упаковывает некоторые файлы в zip-файл на основе этого ввода. Проблема в том, что иногда сервер ошибается, поэтому все данные формы теряются. Мне сказали, что я могу вместо этого использовать ajax, чтобы пользователю даже не пришлось менять страницу. Я никогда не использовал ajax, и смотреть на http://api.jquery.com/jQuery.ajax/ без какого-либо опыта работы с ajax довольно сложно.

На странице написано, что вы можете принимать возврат от вызова ajax. Как настроить возврат в файле PHP для вызова ajax? Если на сервере возникнут ошибки при вызове ajax, как я узнаю?

edit: Кроме того, есть ли способ отправить запрос ajax с javascript и jquery, как если бы это была отправленная форма?

Ответы [ 3 ]

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

каждая функция ajax имеет функцию param для обработки серверных возвратов. И большинство из них имеет параметр msg, то есть сообщение от сервера. на страницах сервера, например на страницах php, вы можете просто использовать echo что-то, чтобы вернуть информацию в функцию ajax. ниже приведен пример

$.ajax({
  url:yoururl,
  type:post,
  data:yourdata,
  success:function(msg){
      //here is the function dealing with infomation form server.
  }
});
0 голосов
/ 26 августа 2011

Самый простой способ получить информацию из PHP в JavaScript через AJAX - это кодировать любые данные PHP в формате JSON, используя json_encode().

Вот краткий пример, если предположить, что ошибки вашего сервера можно отследить

<?php
try {
    // process $_POST data
    // zip files, etc
    echo json_encode(array('status' => true));
} catch (Exception $e) {
    $data = array(
        'status'  => false,
        'message' => $e->getMessage()
    );
    echo json_encode($data);
}

Тогда ваш код jQuery может выглядеть примерно так

$('form').submit(function() {
    var data = $(this).serialize();
    $.ajax(this.action, {
        data: data,
        type: 'POST',
        dataType: 'json',
        success: function(data, textStatus, jqXHR) {
            if (!data.status) {
                alert(data.message);
                return;
            }
            // otherwise, everything worked ok
        },
        error: error(jqXHR, textStatus, errorThrown) {
            // handle HTTP errors here
        }
    });
    return false;
});
0 голосов
/ 26 августа 2011

Как настроить возврат в файле PHP

просто эхо на странице ajax, которая будет возвращаться в качестве ответа

Простое руководство

client.php

$.post('server.php',({parm:"1"}) function(data) {
  $('.result').html(data);
});

server.php

<?php

echo $_POST['parm'];

?>

результат будет 1

редактировать комментарии OP Есть ли способ использовать ajax, как если бы вы отправляли форму

Да, есть

используя sumit

$('#form').submit(function() {
 //your ajax call
  return false;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...