Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.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
javascript include_once-javascript php调用相同的文件复制内容_Php_Javascript_Jquery_Ajax - Fatal编程技术网

javascript include_once-javascript php调用相同的文件复制内容

javascript include_once-javascript php调用相同的文件复制内容,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我正在使用ajax加载一个php脚本,该脚本根据屏幕分辨率显示内容。这个脚本工作得很好,但是ajax调用的url在脚本的后面也会被调用——它保存了所有的处理信息。因此,结果是所有内容都通过jquery加载,然后用php复制。例如: <script type="text/javascript"> $(document).ready(function() { $.ajax({ url: 'functions/maxresults.php',

我正在使用ajax加载一个php脚本,该脚本根据屏幕分辨率显示内容。这个脚本工作得很好,但是ajax调用的url在脚本的后面也会被调用——它保存了所有的处理信息。因此,结果是所有内容都通过jquery加载,然后用php复制。例如:

<script type="text/javascript">
$(document).ready(function() {
      $.ajax({
         url: 'functions/maxresults.php',
         type: 'GET',
         data: {h: screen.height, w: screen.width}
      }).done(function ( data ) {
          alert("I am working!");
         document.getElementById("container").innerHTML=data;
        });
    });
</script>

$(文档).ready(函数(){
$.ajax({
url:'functions/maxresults.php',
键入:“GET”,
数据:{h:screen.height,w:screen.width}
}).完成(功能(数据){
警惕(“我在工作!”);
document.getElementById(“容器”).innerHTML=数据;
});
});
再向下

<div =id="container"></div>




我无法删除php include,否则脚本将无法工作。在jquery中创建一次include_是否有效?如果是,如何编写代码

PHP是一个预处理器。因此,您是否“稍后”将其包含在文件中并不重要。您的include_once将在JavaScript执行之前被处理和输出

我认为问题在于include_once脚本也在输出container div。因此,当您删除该行时,它会破坏javascript。请尝试以下方法:

  • 从maxresults.php文件中删除容器div

  • 替换
    这是错误的方法(因为好的方法只是不包含代码两次),但可以在包含的php代码中包含javascript全局变量WAS_include=true,然后让JavaSript检查该变量是否已定义,并仅在未定义时执行代码。另一方面,您可以将GET参数从js发送到php。@Benjamin如果您有时间,可以给我举个例子吗?虽然我觉得告诉您如何实现它是公平的,但我不能给您这个方法作为答案。我真诚的回答是,你需要重新思考你的设计。在一个经过深思熟虑的网页设计中,这种情况是不可能发生的。你为什么要面对这个问题?为什么相同的JavaScript代码包含两次?为什么它不在单独的.js文件中?你的模板设计是否经过深思熟虑?@Ben我不是程序员-开发我网站的程序员不知道如何实现某些功能。在过去的一年里,我自学了设计,自己解决了某些问题,但我对编程方面还是新手。我正在尝试使用我所拥有的。你知道如何从js到php获取参数的好例子吗?正在输出正确的维度-问题是“容器”中的所有内容都被复制;首先由php显示(如您所阐明的),然后由javascript显示。maxresults到底输出什么?它正在创建容器元素吗?是的,maxresults正在创建容器元素和内部的所有div/content为什么不在添加内容之前清空容器?这样就不会有重复。但正如其他人所说,这是完全错误的。你在破解一个被破解的代码。糟糕。您应该重新考虑它。@mark谢谢,但现在没有显示任何内容。php需要包含maxresults.php,但是ajax可以调用容器而不是php吗?
    
    <?php
    require_once("databasefunctions.php");
    ?>
    
    <div id="container">
    <div id="movieinfo"> 
    <?php include("sidebar.php");?>
    <?php
    // get the function
    include_once ('function.php');
    if($_GET['page'])
    $page = $_GET['page'];
    else
    $page = 0; 
    $maxresults = -1;
    if(($_GET['w']) && ($_GET['h'])) {
      $w = $_GET['w'];
      $h = $_GET['h'];
    }
      if ($w == 1920) {
        $maxresults = 24;  
      } else if ($w == 1600) {
        $maxresults = 21;  
      } else if ($w == 1440){ 
        $maxresults = 14;
      } else if ($w == 1366) { 
        $maxresults = 21;
      } else if ($w == 1024) {
        $maxresults = 8;
      } else 
        $maxresults = 6;
    echo $maxresults;
    $currentpage = $page;
    $page = $page*$maxresults;
    $numpages = QuickQuery("SELECT COUNT(id) FROM movies WHERE visible=1");
    $numpages = mysql_result($numpages, 0);
    $numpages = $numpages/$maxresults-1;
    $result = GetMoviesByRangeID($page, $maxresults);//Show <maxresults> pages at a time
    DisplayResults($result); 
    ?>
    </div>
    </div>
    
    <script type="text/javascript">
    $(document).ready(function() {
      $.ajax({
         url: 'functions/maxresults.php',
         type: 'GET',
         data: {h: screen.height, w: screen.width}
      }).done(function(resp) {
          alert("I am working!");
          $("#container").html(resp);
        });
    });
    </script>
    
    <div =id="container"></div>
    
    <?php
    require_once("databasefunctions.php");
    ?>
    
    <div id="movieinfo"> 
    <?php include("sidebar.php");?>
    <?php
    // get the function
    include_once ('function.php');
    if($_GET['page'])
    $page = $_GET['page'];
    else
    $page = 0; 
    $maxresults = -1;
    if(($_GET['w']) && ($_GET['h'])) {
      $w = $_GET['w'];
      $h = $_GET['h'];
    }
      if ($w == 1920) {
        $maxresults = 24;  
      } else if ($w == 1600) {
        $maxresults = 21;  
      } else if ($w == 1440){ 
        $maxresults = 14;
      } else if ($w == 1366) { 
        $maxresults = 21;
      } else if ($w == 1024) {
        $maxresults = 8;
      } else 
        $maxresults = 6;
    echo $maxresults;
    $currentpage = $page;
    $page = $page*$maxresults;
    $numpages = QuickQuery("SELECT COUNT(id) FROM movies WHERE visible=1");
    $numpages = mysql_result($numpages, 0);
    $numpages = $numpages/$maxresults-1;
    $result = GetMoviesByRangeID($page, $maxresults);//Show <maxresults> pages at a time
    DisplayResults($result); 
    ?>
    </div>