У меня есть скрипт, который загружает несколько страниц (просмотры/home.php, просмотры/about.php, просмотры/contact.php и т.д.):AJAX и PHP включают
$(document).ready(function() {
$('#content').load('views/home.php');
$('ul#nav li a').click(function(e) {
var pageq = $(this).attr('href');
$('#content').load('views/' + pageq + '.php');
document.title = $(this).attr('rel');
//to get the ajax content and display in div with id 'content'
$.ajax({
url:'views/'+pageq+'.php',
success: function(data){
$('#content').html(data);
}
});
//to change the browser URL to 'pageq'
if(pageq!=window.location){
window.history.pushState({path:pageq},'',pageq);
}
return false;
});
});
Но он работает только с HTML, напр. <h1>Home</h1>
.
Теперь я бы добавил некоторые переменные на эти страницы. Например, в setup.php есть переменная $ page. Как отобразить <h1>$page['title']</h1>
?
Я пробовал с include('config/setup.php');
, но он не работает.
Я также пробовал это в моем .js файле: $.get('config/setup.php', { x : y });
, но я не знаю, как передать эти переменные и какой лучший подход.
EDIT - навигация:
<?php
try{
$pdo = new PDO("mysql:host=localhost;dbname=mysite", 'root','root');
}
catch(PDOException $e) {
echo $e->getMessage();
}
$sql = "SELECT * FROM posts ORDER BY id";
$stmt = $pdo->prepare($sql);
$stmt->execute();
?>
<ul class="nav navbar-nav" id="nav">
<?php
while ($row = $stmt->fetch(PDO::FETCH_OBJ)) {
$sub_sql = "SELECT * FROM submenu WHERE cat_id=:id";
$sub_stmt = $pdo->prepare($sub_sql);
$sub_stmt->bindParam(':id',$row->id,PDO::PARAM_INT);
$sub_stmt->execute();
?>
<li class="dropdown <?php selected($path['call_parts'][0], $row->slug, 'active') ?>"><a href="<?php echo $row->slug; ?>" rel="<?php echo $row->title; ?>"><?php echo $row->title; ?></a>
<?php
if($sub_stmt->rowCount()) {
?>
<ul class="dropdown-menu" role="menu">
<?php
while ($sub_row = $sub_stmt->fetch(PDO::FETCH_OBJ)) {
?>
<li><a href="<?php echo $sub_row->href; ?>"><?php echo $sub_row->sub_name; ?></a></li>
<?php
}
?>
</ul>
<?php
}
?>
</li>
<?php
}
?>
</ul>
Что делать, если у вас есть 'включить ('Config/setup.php'); 'в ваших файлах просмотра? Вот как это будет работать, вы не будете называть файл установки через javascript. – slapyo
Таким образом, нет возможности загружать динамический контент без обновления страниц? Я всегда получаю один из них: 1) только статический контент и обновление страницы; или 2) динамический контент и обновление страницы. Я хочу: 3) динамический контент, без обновления :) EDIT: я мог бы также выполнять db-запрос на каждой странице отдельно, чтобы получить контент из db. Но это единственный способ? – Tompo