При обычной загрузке страницы всё нормально, но при использовании AJAX всё идёт наперекосяк.
Т.е. загружается исполняемый скрипт (index.php) - в нём всё нормально (по-умолчанию вставлен через include файл main.php). Но если подгрузить тот же main.php через AJAX, все результаты MySQL не показываются (будто запросы к БД не совершались). Данная проблема появляется при AJAX-подгрузке любого скрипта (например, faq.php).
Сам AJAX:
var default_content="";
$(document).ready(function(){
checkURL();
$('ul li a').click(function (e){
checkURL(this.hash);
});
//filling in the default content
default_content = $('#cab1net').html();
setInterval("checkURL()",1000);
});
var lasturl="";
function checkURL(hash)
{
if(!hash) hash=window.location.hash;
if(hash != lasturl)
{
lasturl=hash;
// FIX - if we've used the history buttons to return to the homepage,
// fill the cab1net with the default_content
if(hash=="")
$('#cab1net').html(default_content);
else
loadPage(hash);
}
}
function loadPage(url)
{
url=url.replace('#page_','');
$('#cabload').css('display','block');
$.ajax({
type: "POST",
url: "../cabinet/load.php",
data: 'page='+url,
/*dataType: "html",*/
success: function(msg){
if(parseInt(msg)!=0)
{
$('#cabload').css('display','none');
$('#cab1net').html(msg);
}
}
});
}
Скрипт, к которому он обращается:
<?php
if(!$_POST['page']) die('<div class="notify_box notify notify_error">
<p><span>Ошибка</span> Страница не указана</p>
</div>
');
$page = $_POST['page'];
if(file_exists($page.'.php'))
include($page.'.php');
else echo '<div class="notify_box notify notify_error">
<p><span>Ошибка</span> Неверная страница</p>
</div>';
?>
Исполняемый (главный) скрипт:
<?php
define('cab1net', TRUE);
?>
<script type="text/javascript" src="/cabinet/img/script.js"></script>
<div class="cabmenu" align="center">
<ul class="cabmenu">
<li><a> </a></li>
<li><a href="#page_main">Основное</a></li>
<li><a href="#page_faq">FAQ</a></li>
<li><a>Платное</a>
<ul>
<li><a href="" style="color:orange;">Премиум</a></li>
<li><a href="" style="color:yellow;">VIP</a></li>
<li><a href="" style="color:lime;">Оружие</a></li>
<li><a href="">HD скин / плащ</a></li>
<li><a href="">Разбан</a></li>
</ul>
</li>
<li><a>Магазин</a>
<ul>
<li><a href="">Обычные ресурсы</a></li>
<li><a href="">Ресурсы из модов</a></li>
<li><a href="" style="color:gray;">Нечестная цена?</a></li>
</ul>
</li>
<li><a>Разное</a>
<ul>
<li><a href="" style="color:lime;">Привести друга</a></li>
<li><a href="">Купить криптоны</a></li>
<li><a href="">Передать деньги</a></li>
<li><a href="">Бонусные коды</a></li>
<li><a href="" style="color:orange;">Техподдержка</a></li>
</ul>
</li>
<li><a style="color:gray;" title="Вы не администратор">Админка</a></li>
</ul>
</div>
<img id="cabload" src="/cabinet/img/loading.gif" alt="Загрузка..." title="Загрузка..." />
<?php
require 'config.php';
$dbConnect;
mysql_select_db($dbName);
$getecon = mysql_query("SELECT $econBalance FROM $econTable WHERE $econUsername='$player'");
$econ = mysql_result($getecon,0);
$getrub = mysql_query("SELECT balance FROM realmoney WHERE username='$player'");
$rub = mysql_result($getrub,0);
mysql_close($dbConnect);
echo '<div id="cab1net">';
include('main.php');
echo '</div>';
?>
То, что мы подгружаем:
<?php
define( 'cab1net', TRUE);
echo '<div class="skinbox">
<img src="/cabinet/skin2d.php" alt="Ваш скин" />
</div>
';
echo '<li><b>Никнейм:</b> '.$player.'</li>
';
echo '<li><b>Статус:</b> '.$group.'</li>
';
echo '<li><b>Баланс:</b> '.$econ.' криптонов</li>
';
echo '<li><b>Кошелёк:</b> '.$rub.' руб.
';
?>