Beste leden,

Ik wil enkel de data laten refreshen van mijn php pagina.
Volgens mij is dat alleen radioDetails.
Ik heb er weinig kaas van gegeten.
Alle hulp word zeer gewaardeerd!
Dit is wat heb:

<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>
 
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>TELLER</title>
    <link rel="stylesheet" href="./style.css">

</head>
 <body>
    <div id="topbuts">
        <a class="btn" href="./index.php">Ververs</a>
		<a class="btn" href="./log_listeners.php" target="_blank">Listeners Updates / Peaks</a>

        <div class="clearfix"></div>
    </div>
    <?php include ('array.php');?>
     <div class="content">
    <br />
        <?php
			$peak = file_get_contents ('peak.txt');
            if ($data['status'] != '1')
			{
                echo '<b>Error: Servers Offline...</b>';
            }
        ?>
        <br />
        
		<div class="box">
            <div class="head"><i class="icon-play-circle"></i> &nbsp; BesteHitsNL - All Icecast & Shoutcast servers</div>
            <div class="box-content">
                <div class="radioLogo">
                    <img src="logo120.png">
                </div>
                <div class="radioDetails">
                    <b>Listeners:</b> <?php echo $data['listeners']; ?> <br />
                    <b>Listener Peak:</b> <?php echo $peak; ?> <br />
                    <b>Total Stream Hits:</b> <?php echo $data['hits']; ?> <br />
                </div>
                <div class="clearfix" style="border-bottom: 1px solid #C8C8C8;"></div>
                <div class="listener">
                    <div class="col">Hostname</div>
                    <div class="col">Useragent (Player)</div>
                    <div class="col">Listen Time</div>
					<div class="col">Server</div>
					<div class="col">Location</div>
                </div>
				
                <div id="listeners">
                    <?php
                        if (is_array($data['listeners-list']))
						{
                            foreach ($data['listeners-list'] as $list)
							{
								$ip = $list['HOSTNAME'];
								if ($ip == '127.0.0.1')
								{
									$LocationString = 'Localhost';
								}
								else
								{
									$ipInfo = grabIpInfo($ip);
									$ipJsonInfo = json_decode($ipInfo);
									$LocationString = $ipJsonInfo->name;
								}
                                echo '<div class="listener">
                                <div class="col">' . $list['HOSTNAME'] . '</div>
                                <div class="col">' . $list['USERAGENT'] . '</div>
                                <div class="col">' . floor($list['CONNECTTIME']/3600)."h ".floor(($list['CONNECTTIME'] / 60) % 60) ."m ".floor($list['CONNECTTIME'] % 60)."s" . '</div>
								<div class="col">' . $list['SERVER'] . '</div>
								<div class="col">' . $LocationString . '</div>
                                </div>';
                            }
                        }
					function grabIpInfo($ip)
					{
						$curl = curl_init();
						curl_setopt($curl, CURLOPT_URL, "https://api.ipgeolocationapi.com/geolocate/" . $ip);
						curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
						$returnData = curl_exec($curl);
						curl_close($curl);
						return $returnData;
					}
                    ?>
					
                </div>
            </div>
        </div>
		<br /><br />
    </div>
</body>

Dit stukje heb ik zelf erneer gezet!
<script src="https://code.jquery.com/jquery-3.5.1.js"></script> 
<div id="radioDetails">dynamic content ?</div>
<script> 
$(document).ready(function(){
setInterval(function(){
      $("#radioDetails").load(window.location.href + "#radioDetails" );
}, 3000);
});
</script>
Kan je jouw code tussen code-tags zetten?
In de editor hebben we deze een handige knop voor.


En kan je ook vertellen waar je precies op vastloopt?
Beste Ariën,

Het laatste stukje zet de pagina er nogmaals compleet onder maar wel gerefresht.
Ik wil graag de data zelf.
Hier moet een fout inzitten:


<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<div id="radioDetails">dynamic content ?</div>
<script>
$(document).ready(function(){
setInterval(function(){
$("#radioDetails").load(window.location.href + "#radioDetails" );
}, 3000);
});
</script>
Ik raad aan om een apart script te maken die de data ophaalt. Nu voeg je hoogstwaarschijnlijk twee HTML-documentstructuren in één, wat niet kan.

Een AJAX-request is immers geen i-frame.
Kan ik dit in een apart script zetten ?
Of mis ik dan wat.
Ik heb u persoonlijk via messenger de link gestuurd.

<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<div id="radioDetails"></div>
<script>
$(document).ready(function(){
setInterval(function(){
$("#radioDetails").load(window.location.href + "#radioDetails" );
}, 3000);
});
</script>
De data komt uit PHP, en die kan je in een apart script uitvoeren bijvoorbeeld: /ajax/RadioData.php

Lees ook even je Privébericht a.u.b.
Ik heb nu de pagina werkend.
Maar hij blijft de pagina dubbel onder elkaar weergeven.
Dan laad je je pagina blijkbaar dubbel in.
Je moet immers NIET dezelfde pagina in je .load() aanroepen, als je dat doet.
In de .load heb ik een div staan
Welke URL vraag je in je load() op?
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>

<div id="radioDetails"></div>
<script>

$("#radioDetails").load(window.location.href + "#" );
}, 3000);
});
</script>

Reageren