Refreshen van query.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bob Desaunois

Bob Desaunois

03/04/2013 11:04:18
Quote Anchor link
Hallo!
ik ben laatst begonnen aan een nieuw leuk projectje.

voordat ik over het probleem begin zal ik eerst uitleggen wat het uberhaupt inhoud.
het is dus een website waar men iets kan invoeren wat dan naar de DB gestuurd word en beland op de website
wat de illustratie heeft van een berg.

als iemand iets invoerd op de website word de oude zin verwijderd.

Maar, als iemand iets invoert moet iedereen alles eerst refreshen.
is er een marnier om een div of misschien een query elke 5 of 10 seconden te herhalen?
(zonder de heele pagina te refreshen)


dit is de division waar het om gaat.

<div id="king" class="THREEdee">

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
<?php
                include 'connect.php';
                
                
                if($_POST['submit']) {
                    $message = filter_var($_POST['messageInput'], FILTER_SANITIZE_FULL_SPECIAL_CHARS);

                    if(!mysql_query("INSERT INTO Data(message) VALUES('$message')")) {
                        echo mysql_query();
                        exit();
                    }
                    
                }

                
                $message = mysql_query("SELECT message FROM Data ORDER BY id DESC");
                $messageArray = mysql_fetch_assoc($message);
                
                echo $messageArray['message'];
                
                mysql_close($con);
                ?>


dit is het FORM.

<div id="inputDiv">
<form id="form" action="index.php" method="post">
<input type="text" maxlength="40" name="messageInput" /><br/>
<input id="submit" type="submit" name="submit" value="Conquer the hill~!"/>
</form>
</div>


alvast bedankt!
Gewijzigd op 03/04/2013 11:11:46 door Bob Desaunois
 
PHP hulp

PHP hulp

08/11/2024 16:02:19
 
Robert Wazzaa

Robert Wazzaa

03/04/2013 11:57:16
Quote Anchor link
Hey Bob,

Wat jij wil kan, dit houd wel in dat je de pagina steeds in zal moeten laden met Ajax.
Vervolgens kan je een setInterval gebruiken om steeds opnieuw de ajax call te doen.
 
Marciano Schildmeijer

Marciano Schildmeijer

03/04/2013 12:02:24
Quote Anchor link
Ik heb het op deze manier gedaan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<body onload="JavaScript:timedRefresh(2000);">


function timedRefresh(timeoutPeriod)
                                                         {
                                                            setTimeout(\"location.reload(true);\",timeoutPeriod);

                                                        }



Je moet alleen de pagina helemaal refreshen. In een div werkt dit volgens mij niet.
 
Robert Wazzaa

Robert Wazzaa

03/04/2013 12:05:41
Quote Anchor link
nee klopt, dit zal ook nooit doen wat je wilt;
Je zal het zoals dit moeten doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<div id="hierdataladen"></div>

<script>
    setInterval(function(){
        $.ajax({
            url: '< hier je url >',
            success: function(data){
                $("#hierdataladen").html(data)
            }
        })
    },7500); /* Gebeurt elke 7,5 seconden */
</script>


heb het nit getest overigens!
En ik ga er van uit dat je jQuery gebruikt.
 
Bob Desaunois

Bob Desaunois

03/04/2013 12:12:13
Quote Anchor link
Ik gebruik inderdaad jQuery!
Bedankt voor de hulp, nu kan ik weer verder met mijn kunstwerk, haha

Nogmaals bedankt!
Bob Desaunois.
 
Robert Wazzaa

Robert Wazzaa

03/04/2013 12:13:37
Quote Anchor link
Graag gedaan en succes verder!
 
Bob Desaunois

Bob Desaunois

04/04/2013 10:49:20
Quote Anchor link
Ok ik heb wat slecht maar ook goed nieuws over de code.
Hij werkt ongeveer, als ik iets invoer dan refresht inderdaad de Division.

dit is de code at the moment;

setInterval(function(){
$.ajax({
url: 'index.php',
success: function(data){
$("#king").html(data);
}
});
},7500); /* Gebeurt elke 7,5 seconden */

er is alleen een klein probleempje.

en dat is vrijwel makkelijk te zien op de volgende screenshots.

Hier is de site net geopened.
https://dl.dropbox.com/u/50042261/probleem/lijktGoed.png

en hier word het refresh script uitgevoerd via Ajax.
https://dl.dropbox.com/u/50042261/probleem/maarNee.png

Het lijkt alsof hij de website nogmaals aanmaakt in de division.
heeft iemand een idee hoe dit te fixen valt?

alvast (alweer) bedankt!
 
Robert Wazzaa

Robert Wazzaa

04/04/2013 10:51:06
Quote Anchor link
bob dat klopt, je doet een ajax call op index.php je moet een appart php bestand maken, en hierin ALLEEN zetten wat je in de #king div wilt hebben!
 
Bob Desaunois

Bob Desaunois

04/04/2013 11:08:55
Quote Anchor link
Ah, ik zie het al ja, je hebt gelijk.
ik heb het veranderd en het werkt nu perfect :)

Nogmaals bedankt!
 



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.