PHP решение
Чтобы сделать эту работу, main.php
придется возвращать только содержимое дел. Это означает, что ему нужно определить, когда нужно сделать целую страницу или просто содержимое div. Существует несколько способов сделать это.
- Сделать отдельный файл PHP для запросов AJAX, которая всегда только возвращает ту часть страницы
Используйте HTTP_X_REQUESTED_WITH
заголовок обнаружить запрос на AJAX
если (! Пустой ($ _ SERVER [ 'HTTP_X_REQUESTED_WITH']) & & strtolower ($ _ SERVER [ 'HTTP_X_REQUESTED_WITH']) == 'XMLHttpRequest') { // Если вы здесь, это запрос AJAX. Убедитесь, что вы только отображаете содержимое div. }
Как у одного. Вместо создания отдельного PHP-файла добавьте параметр строки запроса, поэтому страница будет знать, что она должна только вернуть эту часть. Вы можете даже указать в строке запроса эту часть, чтобы вы могли загружать разные части через один и тот же файл php через разные интервалы.
решение JavaScript
В качестве альтернативы, вы можете просто извлечь всю страницу, и использовать JQuery для извлечения содержимого в Див от него. Для этой цели у load function есть удобный синтаксис.
Метод .load() позволяет указать часть удаляемого документа для вставки. Это достигается с помощью специального синтаксиса для параметра url. Если один или несколько символов пробела включают в себя , часть строки, следующей за первым , считается селектором jQuery, который определяет загружаемый контент .
Функция загрузки позволяет использовать дополнительный селектор после URL-адреса, содержимое, соответствующее селектору, выбирается из ответа AJAX и вставлено в указанный элемент документа. По этой причине идентификаторы должны быть разными, иначе вы вставляете элемент с тем же идентификатором внутри существующего элемента, и это недопустимо.
Так что ваш HTML должен выглядеть следующим образом:
<div id="refreshDataContainer">
<div id="refreshData">
</div>
</div>
После того, как вы сделали это изменение, вы можете полностью заменить #refreshData
следующей строкой:
$('#refreshDataContainer').load('main.php #refreshData');
является main.php файл, в котором этот javascript есть? –
@PatrickEvans Да –
Если 'main.php' возвращает всю страницу, то это полное содержимое отображается в этом div снова. 'main.php' должен отображать только новое содержимое для div, если запрос является запросом AJAX, или JavaScript должен быть достаточно умным, чтобы извлечь из него контент и использовать эту часть. – GolezTrol