我使用ajax加载显示基于屏幕分辨率的内容的php脚本。该脚本效果很好,但是ajax调用的url也在后面的脚本中调用 - 它包含所有处理信息。所以,结果是所有内容都通过jquery加载,然后用php复制。例如:javascript include_once- javascript 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>
进一步回落
<?php
include_once("functions/maxresults.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>
我无法取出PHP包括或脚本将无法工作。会在jQuery工作中创建include_once,如果是这样,我该如何编码?
这是错误的做法(因为好一个简单_not_包括代码两次),但你可以有一个JavaScript全局变量WAS_INCLUDED =在PHP代码,你有真正的,然后有JavaSript检查变量只有在没有的情况下才被定义并执行代码。另一方面,你可以发送一个GET参数从js到php。 – 2013-03-02 16:50:08
@Benjamin如果你有时间可以给我看一个例子吗? – JJM 2013-03-02 16:54:00
虽然我觉得告诉你如何实现它是公平的,但我不能给你这种方法作为答案。我诚实的回答是你需要重新考虑你的设计。在精心设计的网页设计中,这种情况不应该发生。你为什么面对这个问题?为什么相同的JavaScript代码包含两次?为什么它不在一个单独的.js文件中?你的模板是否经过深思熟虑? – 2013-03-02 16:56:46