Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包括PHP,使用ajax加载页面(不刷新页面)_Php_Ajax_Include_Get_Loading - Fatal编程技术网

包括PHP,使用ajax加载页面(不刷新页面)

包括PHP,使用ajax加载页面(不刷新页面),php,ajax,include,get,loading,Php,Ajax,Include,Get,Loading,我是新来的,所以我想更具体地说XD好吧,让我们开始: 我用div+css创建了一个模板,用php创建了一个脚本,其中包含一个文件,您可以通过“index.php?modul=modulename”菜单链接调用该文件。这是代码: <div id="contenuto"><br /> <?php if(empty($_GET["modul"]) && empty($_GET['userpanel'])) { require('moduli

我是新来的,所以我想更具体地说XD好吧,让我们开始:

我用div+css创建了一个模板,用php创建了一个脚本,其中包含一个文件,您可以通过“index.php?modul=modulename”菜单链接调用该文件。这是代码:

<div id="contenuto"><br />
<?php
if(empty($_GET["modul"]) && empty($_GET['userpanel'])) {
        require('moduli/news.php');
            }
        elseif (file_exists("moduli/" . $_GET['modul'] . ".php")) {
        include("moduli/" . $_GET['modul'] . ".php");}
         elseif (file_exists("moduli/userpanel/" . $_GET['userpanel'] . ".php")) {
        include("moduli/userpanel/" . $_GET['userpanel'] . ".php");
       }else{
      include("moduli/404.php");
    }
?>
<br />
</div>



所以…我希望当我点击一个菜单链接时,它将包含特定的模块,而不刷新页面…很抱歉我的英文不好xD要在不刷新页面的情况下实现新功能,您需要使用ajax。我建议使用图书馆


您将需要调用诸如或之类的函数。这两个函数都将url作为第一个参数,它可以是PHP页面。

要在不刷新页面的情况下实现新功能,需要使用ajax。我建议使用图书馆


您将需要调用诸如或之类的函数。这两个函数都将url作为第一个参数,可以是PHP页面。

假设这是您的菜单链接列表:

<ul id="menulist">
  <li><a href="index.php?modul=mod1" rel="mod1">Module 1</a></li>
  <li><a href="index.php?modul=mod2" rel="mod2">Module 2</a></li>
  <li><a href="index.php?modul=mod3" rel="mod3">Module 3</a></li>
  <li><a href="index.php?modul=mod4" rel="mod4">Module 4</a></li>
  <li><a href="index.php?modul=mod5" rel="mod5">Module 5</a></li>
</ul>

假设这是您的菜单链接列表:

<ul id="menulist">
  <li><a href="index.php?modul=mod1" rel="mod1">Module 1</a></li>
  <li><a href="index.php?modul=mod2" rel="mod2">Module 2</a></li>
  <li><a href="index.php?modul=mod3" rel="mod3">Module 3</a></li>
  <li><a href="index.php?modul=mod4" rel="mod4">Module 4</a></li>
  <li><a href="index.php?modul=mod5" rel="mod5">Module 5</a></li>
</ul>

您希望链接看起来像
。将
module_name
替换为您希望每个链接获得的模块名称。Ajax是关于javascript“xmlHttpRequest”的

function getPage(modul){

    // This will create the XmlHttpRequest in modern browsers
    if(window.XMLHttpRequest){
        xmlhttp=new XMLHttpRequest();                   
    }
    // This will create the XmlHttpRequest in older versions of Internet Explorer
    else{
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    // This is how you tell the script what to do with the response from the request
    xmlhttp.onreadystatechange=function()
    {
        if(xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("contenuto").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", "moduli.php?modul="+modul, true);
    xmlhttp.send();
}
在本例中,您需要另一个文件,
moduli.php
来接收xmlhttp请求并包含正确的文件。它可能看起来像这样

$modul = $_GET['modul'];

include('moduli/'.$modul.'.php');
这是我想到的第一个通过AJAX实现的方法,但我不是老手,所以可能有一个更简单的方法


编辑:其他人用更简单的方法来回答这个问题,所以我建议大家看看。“我的版本”的唯一好处是,您不必调用来包含库(即使这样做很简单)。

您希望链接看起来像
。将
module_name
替换为您希望每个链接获得的模块名称。Ajax是关于javascript“xmlHttpRequest”的

function getPage(modul){

    // This will create the XmlHttpRequest in modern browsers
    if(window.XMLHttpRequest){
        xmlhttp=new XMLHttpRequest();                   
    }
    // This will create the XmlHttpRequest in older versions of Internet Explorer
    else{
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    // This is how you tell the script what to do with the response from the request
    xmlhttp.onreadystatechange=function()
    {
        if(xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("contenuto").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", "moduli.php?modul="+modul, true);
    xmlhttp.send();
}
在本例中,您需要另一个文件,
moduli.php
来接收xmlhttp请求并包含正确的文件。它可能看起来像这样

$modul = $_GET['modul'];

include('moduli/'.$modul.'.php');
这是我想到的第一个通过AJAX实现的方法,但我不是老手,所以可能有一个更简单的方法


编辑:其他人用更简单的方法来回答这个问题,所以我建议大家看看。我的版本的唯一好处是,您不必调用来包含库(即使它很简单)。

如果我不理解一件事,那么很抱歉xD module_bringer.php上应该放什么?因此,您可以在不刷新页面的情况下为链接带来内容。当客户端单击菜单项时,此文件“module_bringer.php”将仅打印“#contenuto”div的新内容。好的,对不起,您能为我编写代码吗?xD因为我是Jquery的noob,我糟糕的英语知识帮不了我xD再次抱歉:(我已经照你写的做了……但是没有用……它仍然会加载刷新页面……不要更改“contenutoçç”,有办法和你聊天?像skype/msn或facebook?再次感谢!!谢谢你!!!我已经修复了!!你的代码中有一个错误;)在“;”下一个(rel)但是我解决了它,现在开始工作了!!谢谢教授,如果我还不明白一件事xD我应该在module#bringer.php上放什么?xD这样你就可以在不刷新页面的情况下为链接带来内容。这个文件“module#bringer.php”将只打印“#contenuto”的新内容当客户端单击菜单项时div。好的,对不起,你能帮我写代码吗?因为我是Jquery的noob,我糟糕的英语知识帮不了我xD再次抱歉:(我已经照你写的做了……但是没有用……它仍然会加载刷新页面……不要更改“contenutoçç”,有办法和你聊天?像skype/msn或facebook?再次感谢!!谢谢你!!!我已经修复了!!你的代码中有一个错误;)在“;”下一个(rel)但是我解决了问题,现在开始工作了!!谢谢请检查可选项的内容,以便在$\u GET['module']为“../../../../../../../var/spool/ftp/pub/incoming/free\u virus\u scan”或类似值时做好准备。请检查可选项的内容,以便在$\u GET['module']为“../../../../var/spool/ftp/pub/incoming/free\u virus\u scan”时做好准备或类似的。