Variabele meesturen met Jquery

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daan Vee

Daan Vee

13/01/2016 22:54:54
Quote Anchor link
Nog een moeilijk Jquery-vraagje, ik heb het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
         <script>
$(document).ready(function(){
    setInterval(function(){
        $("#list").load('shared/loadscript.php?draaiboekID=<? echo $draaiboekID; ?>')
    }, 2000);
});
</script>

<div id="list"></div>


Deze jQuery werkt al en laadt de pagina loadscript.php.
Echter wordt de variabel niet meegestuurd. Hoe los ik dat op? Want hij moet bepaalde info laden op die pagina met het juiste $draaiboekID.
Gewijzigd op 13/01/2016 23:11:59 door - Ariën -
 
PHP hulp

PHP hulp

28/03/2024 17:51:05
 
- Ariën  -
Beheerder

- Ariën -

13/01/2016 23:08:13
Quote Anchor link
Waar komt $draaiboekID vandaan?
Verder raad ik aan om <?php te gebruiken.

Edit:
Topictitel verduidelijkt
Gewijzigd op 13/01/2016 23:12:54 door - Ariën -
 
Daan Vee

Daan Vee

13/01/2016 23:13:01
Quote Anchor link
Ik ben er al uit, de fout zat in loadscript.php.
Is het overigens nadelig om een lage interval in te stellen?
 
- Ariën  -
Beheerder

- Ariën -

13/01/2016 23:14:40
Quote Anchor link
Ja, je kan er een mini-DOS-aanval mee opzetten als je de browser heel vaak achterelkaar een request laat doen.
 
Daan Vee

Daan Vee

13/01/2016 23:18:46
Quote Anchor link
Weet je of het mogelijk is om een standaard div te laden bij het openen van de pagina en die dan met de jQuery te updaten?
Want nu verschijnt de div pas na 2 seconden na het laden van de pagina.
 
- Ariën  -
Beheerder

- Ariën -

13/01/2016 23:20:26
Quote Anchor link
Een functie maken die zich met setInterval recursief aanroept.

Zie je vorige topic. Echter gebruik je dan GET i.p.v. POST. En als deze 'succes' is roept hij zich vanzelf opnieuw aan.
Gewijzigd op 13/01/2016 23:23:32 door - Ariën -
 
Thom -

Thom -

14/01/2016 13:04:34
Quote Anchor link
Als je een variable vanuit javascript naar een Php bestand wil sturen zou ik je aanraden omdat met jQuery/Ajax te doen.

Linkje voor jQuery/Ajax documentatie: http://api.jquery.com/jquery.ajax/
 
Daan Vee

Daan Vee

14/01/2016 20:14:02
Quote Anchor link
Ik heb nu het volgende gemaakt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<script>
$(document).ready(function(){
loadData();

function loadData() {
$(document).ready(function(){
    setInterval(function(){
        $("#list").load('shared/loadscript.php?draaiboekID=<? echo $draaiboekID; ?>')
    }, 2000);
});
};

</script>


Om ervoor te `zorgen dat de div meteen bij het openen van de pagina laadt en daarna om de 2 seconden herladen wordt. Maar het werkt zo niet... Hoe kan ik het fixen?
 
- Ariën  -
Beheerder

- Ariën -

14/01/2016 20:19:33
Quote Anchor link
Recursief werken.....
- Ariën - op 13/01/2016 23:20:26:
Een functie maken die zich met setInterval recursief aanroept.

Zie je vorige topic. Echter gebruik je dan GET i.p.v. POST. En als deze 'succes' is roept hij zich vanzelf opnieuw aan.
 
Daan Vee

Daan Vee

14/01/2016 20:23:20
Quote Anchor link
Ik vind het lastig omdat ik nooit met Jquery werk...
Hoe bedoel je recursief maken? Want ik heb geprobeerd om mijn oude topic hierin te verwerken, maar weet niet hoe :(
 
- Ariën  -
Beheerder

- Ariën -

14/01/2016 20:24:48
Quote Anchor link
Wat heb je al geprobeerd?
 
Daan Vee

Daan Vee

14/01/2016 20:38:42
Quote Anchor link
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
error_reporting(E_ALL);
$itemID= '17';
?>


<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.0.js"></script>
</head>

<body>
<script type="text/javascript">var itemID= '<?php echo $itemID; ?>';</script>
<script>
$(document).ready(function(){
loadData(itemID);

function loadData(itemID) {
$(document).ready(function(){
    setInterval(function(){
        $("#list").load('shared/loadscript.php?draaiboekID=<? echo $draaiboekID; ?>')
    }, 2000);
});
    $.ajax({
        url: "shared/loadscript.php",
        type: "GET",
        data: {itemID: id},
        cache: false,
        success: function(html){
            $(".result").empty().html(html);
                setTimeout(function () {
                    loadData(id);
                }, 3000);
            },
        error:function (xhr, ajaxOptions, thrownError){
            $(".result").empty().html('Error:'+ xhr.status + ' '+ thrownError);
        }    
    });
}
});

</script>
</body>
</html>
 
- Ariën  -
Beheerder

- Ariën -

14/01/2016 20:41:14
Quote Anchor link
Waar is je HTML-element met een class genaamd: result?

Je moet de AJAXresponse wel ergens tonen ;-)

Die load() functie is dubbelop.
Gewijzigd op 14/01/2016 20:43:04 door - Ariën -
 
Daan Vee

Daan Vee

14/01/2016 20:51:27
Quote Anchor link
Hoe zou jij het doen dan? Want ik weet het echt niet meer... :(
 
- Ariën  -
Beheerder

- Ariën -

14/01/2016 20:59:18
Quote Anchor link
Zorg dat je eenmaal de jQuery ready () function gebruikt waarin je al je jQuery functies in gebruikt.

Je setInterval met je load-functie kan weg. Deze is 'dom' en weet zelf niet of een request namelijk gelukt is. $.Ajax() kan dat overigens wel met zijn 'success' of 'error' events.

Als je het goed hebt gedaan heb je alleen nog binnen de ready je loadData functie over met daarin je ajax() functie.

Dan moet je daarna nog even het HTML-element creëren waarin je jouw data in toont.
Gewijzigd op 14/01/2016 21:02:24 door - Ariën -
 



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.