Jquery refresh div sectie met buttons

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lorenzho Dealorde

Lorenzho Dealorde

18/10/2017 17:36:05
Quote Anchor link
Ik krijg beide button maar niet werkende..
Wat doe ik verkeerd!?

myScript.js
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var timeout;
$(document).ready( function(){
$(' #auto').load('load.php');
refresh();
startReload();
});
 
function refresh()
{
    setTimeout( function() {
      $(' #auto').load('load.php');
      refresh();
    }, 5000);
}
function stopReload() {
  clearTimeout(timeout);
}
function startReload() {
  timeout = setTimeout(function() { refresh(); }, 5000);
}


test.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<head>

<script src="http://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="myScript.js"></script>


</head>
<body>
<div>
<div id="auto"></div>
<br></br>
<button onclick="stopReload();">Stop</button>
<button onclick="startReload();">Start</button>
</div>
</body>
</html>


Als dit script werkende is plaats ik het graag in de sectie PHP Scripts(Jquery refresh div sectie met start/stop buttons).
Gewijzigd op 18/10/2017 18:39:42 door Lorenzho Dealorde
 
PHP hulp

PHP hulp

20/04/2024 02:06:56
 
Rob Doemaarwat

Rob Doemaarwat

18/10/2017 17:55:48
Quote Anchor link
Welke foutmelding krijg je (in de console van je browser)?

Je moet van "timeout" een globale variabele maken. Dus ergens bovenaan in je code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
var timeout = null;
. anders is alleen bekend binnen je functie.
 
Lorenzho Dealorde

Lorenzho Dealorde

18/10/2017 18:09:39
Quote Anchor link
ik krijg geen fout meldingen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
var timeout = null;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
var timeout;

heb ik al geprobeert maar dan werkt de buttons nog steeds niet, ook weer geen fout melding.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
cleartimeout(timeout);

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
cleartimeout(refresh);

ook niet, ook weer geen foutmelding.
Gewijzigd op 18/10/2017 18:10:52 door Lorenzho Dealorde
 
Ben van Velzen

Ben van Velzen

18/10/2017 18:11:36
Quote Anchor link
Je zet de timeout verkeerd. Als je een timeout binnen een timeout doet zoals je nu in je code hebt staan wordt de binnenste timeout nooit gestopt.
 
Lorenzho Dealorde

Lorenzho Dealorde

18/10/2017 18:15:27
Quote Anchor link
Hier in dit script dat ik nu gebruik doe ik het zelfde met de timeout en de buttons werken prima. Maar dit refresh de hele pagina, En dat is nu overbodig. Wat doe ik verkeerd dan in het nieuwe script(Hij refresh prima maar de buttons doen niks..)?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
var timeout;
        $(document).ready(function () {
          startReload();
        });

        function stopReload() {
          clearTimeout(timeout);
        }
        function startReload() {
          timeout = setTimeout(function() { window.location.reload(); }, 5000);
        }
Gewijzigd op 18/10/2017 18:51:09 door Lorenzho Dealorde
 
Ben van Velzen

Ben van Velzen

18/10/2017 19:17:08
Quote Anchor link
Zie je serieus niet dat je 2 timeouts set in je andere script? Kijk eens naar je refresh() functie.
 
Lorenzho Dealorde

Lorenzho Dealorde

18/10/2017 19:58:06
Quote Anchor link
ik zie het nu ja.
Ik heb het volgende gedaan maar dan doet de buttons het ook niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var timeout;
$(document).ready( function(){
$(' #auto').load('load.php');
refresh();
startReload();
});
 
function refresh()
{
    setTimeout( function() {
      $(' #auto').load('load.php');
      refresh();
    }, 5000);
}
function stopReload() {
  clearTimeout(timeout);
}
function startReload() {
  timeout = refresh();
}
Gewijzigd op 18/10/2017 20:03:32 door Lorenzho Dealorde
 
Ben van Velzen

Ben van Velzen

18/10/2017 20:57:06
Quote Anchor link
Als je nou in de refresh functie zou zeggen return setTimeout.... (dus even het woorde return toevoegen aan het begin) zou dat werken ja. Nu lijkt het alsof je gewoon maar wat aan het proberen bent zonder een idee te hebben wat de reden zou zijn dat dat zou werken.
 
Lorenzho Dealorde

Lorenzho Dealorde

18/10/2017 21:30:25
Quote Anchor link
Ik heb de return ervoor gezet maar de buttons doen het nog niet. Mijn excusses dat ik nieuw ben in javascript en dat dit mijn eerst script is in js.
 
Ben van Velzen

Ben van Velzen

18/10/2017 21:39:48
Quote Anchor link
Zo dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var timeout;
$(document).ready( function(){
$(' #auto').load('load.php');
refresh();
startReload();
});
 
function refresh()
{
    timeout = setTimeout( function() {
      $(' #auto').load('load.php');
      refresh();
    }, 5000);
}
function stopReload() {
  clearTimeout(timeout);
}
function startReload() {
  refresh();
}
 
Lorenzho Dealorde

Lorenzho Dealorde

19/10/2017 13:44:47
Quote Anchor link
Ja, dat doet het.
en ik snap het ook wat je verandert hebt.

i.p.v. dat de timeout in de startReload functie wordt aangegeven, gebeurt dat nu bij de refresh functie.
want daarvoor wist de refresh fuctie niet eens af van een startReload fuctie en andersom ook als ik het goed hebt.
 
Ben van Velzen

Ben van Velzen

19/10/2017 16:25:23
Quote Anchor link
Om een timeout te kunnen stoppen moet de referentie bekend zijn. Als deze niet gevraagd wordt kan de timeout niet gestopt worden. Feitelijk kan regel 4 uit het script ook gewoon weg zonder de werking te veranderen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.