Очень простой пост jquery () (пытается отправить HTML на другую страницу) - PullRequest
3 голосов
/ 29 февраля 2012

Я борюсь с методом post().

Я читал несколько постов здесь и на форумах jquery, и просто попытка заставить работать простой кусок кода оказывается трудной. Моя конечная цель - передать div #exportData и все его дети в test.php.

Я начал с:

$.post("ajax/test.php", $("body").html());

На мой взгляд, это должно вернуть все содержимое текущей страницы в test.php (если test.php не требует наличия элемента div или элемента для получения содержимого). В настоящее время он возвращает только пустую страницу.

Затем я попытался просмотреть параметры для post(), если мне нужно манипулировать ими:

$.ajax({
        type: 'POST',
        url: ajax/test.php,
        data: data,
        success: success,
        dataType: dataType
    });

Также объявлена ​​переменная:

var data = { 
        html: #exportData
    };

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

Хотя я бы подумал, если:

 $.post("ajax/test.php", $("body").html());

сработало бы тогда, предположительно, я могу заменить "тело" на любой класс, идентификатор или селектор, который мне нравится.

Также для кнопки отправки нужны определенные параметры, чтобы связать ее с функцией публикации. На данный момент это чисто:

<input type="submit" id="submit" value="send" name="submit">

Извините, это такой основной вопрос.

Ответы [ 3 ]

3 голосов
/ 29 февраля 2012

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

var html = $("body").html();
var data = { 
        html: html
    };
$.post("ajax/test.php", data);

, поскольку вторым параметром $ .post () является объект, содержащий данные, которые вы хотите отправить на сервер.

Чтобы отправить данныеВы можете сделать:

<input type="submit" id="submit" value="send" name="submit">

js

$('input#submit').click(function(e){
  //prevent submitting the form (if there is a form)
  e.preventDefault();
    var html = $("body").html();
    var data = { 
            html: html
        };
    $.post("ajax/test.php", data);
});

на стороне сервера вы получите данные

 $html = $_POST['html']
0 голосов
/ 29 февраля 2012

Отправка html в посте не очень хорошая идея. Все элементы типа input или select будут пустыми в Html. Вам нужно будет использовать .serialize, чтобы получить значения.

$('#submit').submit(function () {
    $.ajax({
       type: 'POST',
       url: 'ajax/test.php',
       data: {
           html: $('body').html()
       }
    });        
});
0 голосов
/ 29 февраля 2012

$. Post () ожидает, что объект будет передан для передачи данных вместе с запросом post:

jQuery.post (url [, данные] [, успех (data, textStatus, jqXHR)] [, dataType])

url: Строка, содержащая URL, на который отправляется запрос.
данные: карта или строка, отправленная на сервер с запросом.
success (data, textStatus, jqXHR): Функция обратного вызова, которая выполняется в случае успешного выполнения запроса.
dataType: Тип данных, ожидаемых от сервера. По умолчанию: Intelligent Guess (xml, json, script, text, html).

var content = $ ('body').html(),
    data = { content: content };

$.post('ajax/test.php', data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...