Задать вопрос
dim137
@dim137
python, django, linux

Как в $.ajax разделить данные и добавить в разные области на странице?

Добрый вечер! Добавляю данные на страницу таким образом:
$.ajax({
url: "/test/query_ajax.php",
data: $("#selections").serialize(),
type: "POST",
}).done(function(data) {
$("#buy_table tbody").html(data)

В data так же приходят данные которые необходимо поместить в другую область на странице. Как разделить эти данные? Заранее спасибо!
  • Вопрос задан
  • 953 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
dim137
@dim137 Автор вопроса
python, django, linux
Получилось частично решить проблему таким способом:
$("#buy_table").ready(function(){
	    $.ajax({
        url: "/test/query_ajax.php",
        data: $("#selections").serialize(),
        type: "POST",
    }).done(function(data) {
        $("tbody").html(data).find("#pagination").remove();
        $("#test").html(data).find("tr").remove();
    });
});

Но появилась другая проблема, элемент с id=pagination, не добавляется на страницу. Данные приходят таким способом:
while ($row = $result->fetch_assoc()) {
echo "<tr>" . "<td>" . ++$n . "</td>" . "<td>" . replace_number($row[']) . 
"</td>" . "<td>" .replace_text($row[1]) . "</td>" . "<td>" . 
replace_text($row[2]) . "</td>" . "<td>$row[3]</td>
<td>$row[4]</td>
<td>$row[5]</td>
<td></td>
<td><a href=''>buy</a></td>
</tr>";
}
echo $paginate;

В переменной paginate находится элемент ul с id=pagination, он точно приходит в data и добавляется если в php скрипте закомментировать цикл while. Подскажите как решить проблему!?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Например возвращать не в html, а в json
echo json_encode(array(
    'buy_table' => $buy_table, 
    'something_else' => $something_else
));

$.ajax({
    url: "/test/query_ajax.php",
    data: $("#selections").serialize(),
    type: "POST",
    dataType: "json"
}).done(function(data) {
    $("#buy_table tbody").html(data.buy_table);
    $("#something_else").html(data.something_else);
});
Ответ написан
@bkosun
$result = array(
    'header' => $header,
    'menu' => $menu,
    'content' => $content
    );

die(json_encode($result));

<script type="text/javascript">
<!--
	$.ajax({
        url: "/test/query_ajax.php",
        data: $("#selections").serialize(),
        type: "POST",
        dataType: 'json',
    }).done(function(data) {
        $("#header").html(data.header)
        $("#menu").html(data.menu)
        $("#content").html(data.content)
    }
-->
</script>
Ответ написан
Комментировать
HollowJ
@HollowJ
PHP разработчик
Если данные приходят только в html, то можно так:
var menu = $(data).find('.menu');
var content = $(data).find('.content');

ну дальше распихиват по DOM.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы