duanpu8830 2014-11-20 23:48
浏览 34

AJAX和php包括

I have a script which loads several pages (views/home.php, views/about.php, views/contact.php etc):

$(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;

});

});

But it works only with html, for ex. <h1>Home</h1>.

Now I would add some variables to this pages. For example in setup.php there's a variable $page. How to display <h1>$page['title']</h1> ?

I tried with include('config/setup.php'); but it doesn't work.

I also tried this in my .js file: $.get('config/setup.php', { x : y });, but I don't know how to pass this variables and what is the best approach.

EDIT - navigation:

<?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>
  • 写回答

1条回答 默认 最新

  • dongwen2794 2014-11-20 23:55
    关注

    make sure you have "json" in your jQuery ajax statement

    php:
    $myVar = $_POST['myVar'];
    echo json_encode(array( "var_1"=>$var1, "var_2"=>$var2 ));
    
    
    javascript:
    var myVar = 'xyz';
    $.post('config/setup.php', { myVar:myVar }, function(data) {
    
            var var_1 = data.var_1,
                var_2 = data.var_2; //<< matches w/ php above
    
    }, "json");
    
    评论

报告相同问题?

悬赏问题

  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示