javascript include_once-javascript php调用相同的文件复制内容
我正在使用ajax加载一个php脚本,该脚本根据屏幕分辨率显示内容。这个脚本工作得很好,但是ajax调用的url在脚本的后面也会被调用——它保存了所有的处理信息。因此,结果是所有内容都通过jquery加载,然后用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',
<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。请尝试以下方法:
这是错误的方法(因为好的方法只是不包含代码两次),但可以在包含的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>