Я использую ajax для загрузки php-скрипта, который отображает контент на основе разрешения экрана. Сценарий отлично работает, но URL-адрес, который вызовы ajax также вызывается позже в скрипте, содержит всю информацию о обработке. Таким образом, в результате все содержимое загружается через 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 включить или скрипт не будет работать. Будет ли создание include_once в работе jquery, и если да, то как это сделать?
Это неправильный подход (так как хорошее одно просто _not_ включая код дважды), но вы можете иметь яваскрипт глобальную переменную WAS_INCLUDED = истину в коде PHP вы включаете и затем Javasript проверить, если этому переменный определяется и выполняет код только в том случае, если это не так. С другой стороны вы можете отправить параметр GET из js в php. –
@ Беньямин, если у вас есть время, вы можете показать мне пример? – JJM
Хотя я чувствую, что было бы справедливо рассказать вам, как вы могли его реализовать, я не могу дать вам этот метод в качестве ответа. Мой честный ответ - это то, что вам нужно переосмыслить свой дизайн. нет никакого способа, чтобы такой сценарий происходил в хорошо продуманном веб-дизайне. Почему вы столкнулись с этой проблемой? Почему один и тот же код JavaScript включен дважды? Почему это не в отдельном файле .js? Является ли ваш шаблон хорошо продуманным? –