【问题标题】:AJAX, the PHP variables and meAJAX、PHP 变量和我
【发布时间】:2016-02-18 04:11:16
【问题描述】:

我正在学习如何使用 AJAX,我制作了 4 个文件:

header.php
page1.php
page2.php
页脚.php

我的标题包含 bodyhtmlhead 之类的东西。而我的页脚,</body>...
我需要制作一个通过 AJAX 调用 page1.php 的导航栏,但是如果用户直接访问 page1.php 会怎样,页眉和页脚会发生什么情况 ;-;?
我试图用 PHP 做这两件事:

header.php:

<? $a = 1 ?>

page1.php:

<? if ($a != 1){include 'includes/header.php';} ?>

但是即使该死的 $a 等于 1,page1 也会继续调用 header !!!!!!

我也在page1.php中做了这个:

<? echo $a ?>

你猜怎么着?是的...它返回 1...

header.php 中的 AJAX 代码:

$(function() {
            $('nav a').click(function(e) {

            e.preventDefault();
            var href = $(this).attr('href');

            $('#content').html('Downloading...');

            $.ajax({
                url: href,
                type: 'GET',
                error: function(){
                    // always good to have an error handler with AJAX
                },
                success: function(data){
                    $('#content').html(data);
                }
            });

                // HISTORY.PUSHSTATE
                history.pushState('', 'New URL: '+href, href);
                // e.preventDefault();


            });

哈哈!

【问题讨论】:

  • ajax 在哪里?请添加
  • 1.该问题不包含 AJAX; 2.代码没有意义。
  • 嗯,从技术上讲,这是由 AJAX 引起的问题。也许还有另一种方法可以做到这一点,而不会让我一团糟……
  • 我将添加 AJAX... ---------------------- 添加 AJAX 代码。为什么代码没有意义,Raptor?
  • 我建议第五页总是包含页眉和页脚。 page1page2 类型的页面只需要它们自己的内容。

标签: php jquery ajax


【解决方案1】:

如果 page1.php 使用 AJAX 加载,它无法评估 header.php 中声明的 $a 变量,因为 page1.php 中的所有 PHP 代码在响应返回到标题页之前在服务器端执行。但是您可以将变量作为参数与 url 中的请求一起传递

var href = $(this).attr('href')+'?a='+'<?php echo $a; ?>';

这将传递一个值为 $a 的参数,其 url 如下所示: //page1.php?a=1

在您的 page1.php 中,您可以检查是否未传递此变量(意味着 header.php 未请求该页面):

if (!isset($_GET['a'])){
    include 'includes/header.php';
}

【讨论】:

    猜你喜欢
    • 2019-11-16
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多