Обратный звонок от загрузки с jQuery? - PullRequest
0 голосов
/ 29 января 2011

Я использую PHP и jQuery, и вот мой код (который работает до сих пор).

$(".design").load("<?php echo get_bloginfo('url'); ?>/?addmod_ajax=1",{
    menu: 'layout',
});

Это то, что я хочу сделать.

Если PHP-файл, который я вызываю, находит некоторые значения в массиве PHP (на стороне сервера), я хочу, чтобы jQuery добавил (добавил) некоторое содержимое в элемент HTML. Можно ли сделать такие обратные вызовы?

Для меня важно, что я все еще могу отправлять свои переменные POST в мой файл PHP.

Ответы [ 2 ]

2 голосов
/ 29 января 2011

Вы можете создать разметку и добавить ее на свою страницу с помощью функции load () , которая у вас уже есть. Я предполагаю, что вы возвращаете JSON из вашего метода ajax:

$(".design").load("<?php echo get_bloginfo('url'); ?>/?addmod_ajax=1",{
    menu: 'layout' }, function(data) { 
 var markup = '<ul>';
 for (var x = 0; x < data.length; x++ ) {
markup += '<li><a href="' + data[x].Url + '">'+data[x].Text+'</a></li>';
 }
 markup += '</ul>';
 #('menu').html(markup); });

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

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

Это более старая тема, но здесь обсуждается переполнение стека, которое показывает различные способы, с помощью которых вы можете сгенерировать html и вставить его в DOM: JQuery: строить HTML в «памяти», а не DOM, Существует также плагин tmpl(), который очень полезен для создания разметки. Вы можете узнать больше о tmpl() здесь .

1 голос
/ 30 января 2011

Как сказал @yoda в комментарии, вы можете использовать $ .ajax (), чтобы выполнить это, как показано ниже:

 $.ajax({
   type: "GET",
   url: "<?php echo get_bloginfo('url'); ?>",
   data: "addmod_ajax=1",
   success: function(data){
     alert("data is " + data );
   }
 });

вы можете поменять тип на POST, если вам нужно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...