Функция загрузки jQuery .ajax, как передать данные и получить их? - PullRequest
0 голосов
/ 05 октября 2011

У меня есть что-то вроде следующего:

    $.ajax({
        url: "info.html?" + $(this).attr('id'),
        cache: false,
        success: function(html){
            $('#list-content').load("info.html?" + $(this).attr('id'));
        }
    })

В info.html, если я получу document.href и попытаюсь разобрать его, я не получу info.html? ...вместо этого я получаю URL содержащего окна, которое является index.html.Вопрос, как мне получить данные, следующие за «info.html?»?Это хорошая практика?Как еще я могу передать данные и как я могу получить их из info.html в готовом документе?

Еще один вопрос, есть ли способ получить доступ к элементам внутри info.html после его загрузки?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 05 октября 2011

Я думаю, это больше похоже на то, что вы хотите:

    $.ajax({
      url: "info.html",
      data: {
        id:$(this).attr('id')
      },
      cache: false,
      success: function(html){
          $('#list-content').html(data);
      }
    })

Если я вас правильно понял, вы сейчас находитесь на index.html и хотите захватить info.html и поместить его в div? Если так, то вот как вы это делаете.

Я не совсем уверен, почему вы помещаете GET-параметры в URL, хотя. В функции ajax есть параметр data, который автоматически создаст вашу строку GET, я приведу ее в примере, если вы этого хотите.


ОТВЕТЬ НА НИЖЕ ВОПРОС:

Ну, вы бы хотели использовать язык на стороне сервера, php - популярный выбор. Поэтому вы можете подумать о переименовании файла в info.php (не волнуйтесь, он все равно будет работать, если он заполнен html). Тогда у вас будет доступ к параметру GET в php, вы можете сделать что-то вроде:

<?php
$id=isset($_GET['id']) ? $_GET['id'] : null;
?>

Оттуда вы можете делать что угодно с $ id, выводить его, использовать в запросе БД и т. Д.

0 голосов
/ 05 октября 2011

Это потому, что запрос ajax обрабатывается сервером, а вы все еще находитесь в index.html, который находится на стороне клиента.Вы можете получить к ним доступ через $_GET в php, который является методом загрузки по умолчанию.Что касается доступа к данным в info.html, вы можете легко сделать это в функции обратного вызова после загрузки.

$('#list-content').load("info.html?" + $(this).attr('id'), function() {
     // js stuff here
});
...