Ajax как получить параметр функции, пример .html (html) - PullRequest
1 голос
/ 03 мая 2011

Я получаю код с веб-сайта, что-то вроде (имя файла: index.php):

<html>
<body>

<div class="menu" title="example">Click here to change the content from a html file</div>
<div id="content"></div> 

<script>
$(".menu").click(function() {
    var page = $(this).attr("title");
    $.post("content.php", {"page": page}, function(html){ $("#content").html(html);});
  });
</script>

</body>
</html>

В "content.php":

<?php
ob_start();
include 'index.php';
ob_end_clean();

$page =  $_POST['page'];

$file = $page."html"; 
include($file); 

?>

Работает нормально дляпростой файл $ page. "html".Однако, если я добавлю сложный JavaScript в $ page. "Html", он не будет работать.Мне интересно, почему, как и что такое .html (html) ?Я не могу найти ссылку на передачу параметра как html .Что такое "HTML" здесь?

Ответы [ 7 ]

0 голосов
/ 04 мая 2011

Спасибо, ответ!Теперь я понимаю часть:

  • function(html){ $("#content").html(html);}

    параметр " html " не является значением по умолчанию.Это то же самое, что и

    function(new_content){ $("#content").html(new_content);}

  • Для сложных $ page. ". Html" я просто изменяю код на:

    $.get(page+'.html', function(new_page) {$('#content').html(new_page);});

    Работает нормально.Однако я все еще озадачиваюсь, почему я не могу загрузить сложный файл Javascript, используя:

    $.post("content.php", {"page": page}, function(html){$("#content").html(html);});

0 голосов
/ 04 мая 2011

Просто чтобы объяснить .html(html)

Может быть, если это написано так, вы можете лучше понять.

.html('<p>Some returned html in here</p>')

html в скобках соответствует возвращенному html

0 голосов
/ 03 мая 2011

ответ получен правильно? Если вы console.log (html) или alert (html), это контент, который вы ищете?

Не уверен, имеет ли это какое-то значение, но если вы не получите ответ, можете ли вы заменить include ($ html) в своем PHP на echo $ html?

0 голосов
/ 03 мая 2011
$.post("content.php", {"page": page}, function(html) { 
    $("#content").html(html);
});

html в function(html) - произвольное имя для вывода, полученного с сервера.Итак, $("#content").html(html); вставляет в $('#content') эту информацию.

0 голосов
/ 03 мая 2011
function(html){ $("#content").html(html);}

часть кода назначает содержимое, возвращаемое при вызове вашего content.php, в существующий элемент с идентификатором, установленным на «content».Вы определенно можете загружать функции JavaScript в DOM или выполнять их, когда они загружаются в div «content».Какую ошибку вы получаете?

Я бы посоветовал поместить предупреждение в ваш обратный вызов, например:

function(html){ **alert(html);** $("#content").html(html);}
0 голосов
/ 03 мая 2011

$ (селектор) .html (html) - это jQuery для

  1. выбора элемента, который соответствует «селектору»
  2. , для установки его внутреннего html в переменную html

В вашем примере переменная html - это параметр, переданный обратно в функцию успеха вашего вызова $ .post.Таким образом, $ .post общается с сервером, выбирает страницу, затем загружает контент в ваш div с id = content.Так что для более сложных страниц, возможно, вы не форматируете возвращаемый текст должным образом.Сделайте оповещение (html) в этой функции для действительно простого способа отладки того, на что настроен html.Установите точку останова в чем-то вроде firebug или консоли разработчика Chrome, чтобы копать глубже.

0 голосов
/ 03 мая 2011

Это просто переменная, которая содержит ответ для ajax post request.

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