Beste,

Ik heb een website waarbij de pagina's dynamisch laden met ajax waardoor het veel sneller werkt. Maar de menubalk wordt nu niet meer geladen. Ik heb daar echter een link "berichten" en daar moet het "aantal" zich aanpassen, dit gebeurt nu niet meer. Is daar een oplossing voor?

Ik heb:



<li><a class="laad_pagina" href="inbox4.php">Berichten><?php
$query = "SELECT COUNT(*) AS aantal
 		FROM yabg3_inhoud WHERE naam= '" . $_SESSION['username'] . "' AND status='ongelezen' ";
$result=mysql_query($query);
while($rows=mysql_fetch_array($result)){
if($rows['aantal'] != 0)
{
echo $rows['aantal'];
}
}
?> </a></li>

Heb het getest maar lukt me niet:-(

Zo moet in de onderstaande code de php code langs berichten dynamisch worden:wil er wel een vergoeding voor betalen, dan moet ik ergens anders dit posten zeker?


<?php
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
session_start();
?>
<div id="target"><img src="afbeeldingen/lounge4.jpg"></div>
<?php
}
else{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<?php session_start(); ?>
<link rel="stylesheet" type="text/css" href="css1/scroll.css" />
 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $('body').on('click','.laad_pagina',function(e){
    e.preventDefault();
    $('#target').load($(this).attr('href'), function() {
     
    });
  });
});
</script>

</head>
<body>
	<ul id="thicktabs">
<li><a class="laad_pagina" href="index053.php">Wijzigen</a></li>
<li><a class="laad_pagina" href="inbox4.php">Berichten><?php
$query = "SELECT COUNT(*) AS aantal
         FROM yabg3_inhoud WHERE naam= '" . $_SESSION['username'] . "' AND status='ongelezen' ";
$result=mysql_query($query);
while($rows=mysql_fetch_array($result)){
if($rows['aantal'] != 0)
{
echo $rows['aantal'];
}
}
?> </a></li>
</ul>

	<div id="target"><img src="afbeeldingen/lounge4.jpg"></div>
	<a class="laad_pagina" href="index053.php">Laad pagina 1</a>
</body>
</html>
<?php
}
?>
Je kan wel dezelfde techniek gebruiken, maar je moet wel een andere load functie definieren. De gegevens die je laadt komen namelijk uit een ander bestand en in een andere target terecht. Als je het op hetzelfde moment wilt herladen (dus wanneer iemand van pagina verandert) dan kan je het zo doen. Anders kan je ook nog met een setTimeout het bijvoorbeeld elke minuut of zo herladen.

<script>
$(document).ready(function(){
  $('body').on('click','.laad_pagina',function(e){
    e.preventDefault();
    $('#target').load($(this).attr('href'), function() {
    
    });

    //dit is dus nieuw!!
    $('#berichten').load('berichten.php');
  });
});

Regel 32 (en waar nu 100 staat kan je natuurlijk nog gewoon de code gebruiken die je boven hebt staan zodat je ook direct bij het laden van de pagina het juiste aantal hebt):

<li>Berichten <span id="berichten">100</span></li>


En dan de berichten.php daarin haal je het aantal berichten op uit je database en echo'ed dat naar het scherm.
Bedankt voor de info!!

Maar op de plaats waar je de 100 zet, daar moet ik dan niks zetten en alles in de berichten.php? In de berichten.php komt dan de query waar ik het aantal ophaal en dit echo ik dan zoals je hierboven aangeeft ook in de pagina berichten.php.

Kurt
Nee, zoals ik zeg, je kan er nog gewoon de code gebruiken die er al stond. Anders staat er niets totdat de gebruiker een nieuwe pagina laadt. Ik heb de DB code alleen even weg gelaten om het overzichtelijk te houden.

Reageren