jQuery / AJAX

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

/home/joost

/home/joost

28/07/2009 15:37:00
Quote Anchor link
Beste,

Hoe kan ik dit script laten uitvoeren als een vriend online komt (dit check ik via AJAX) maar hoe kan ik AJAX tegen jQuery laten vertellen dat er een vriend online is en dat het volgende script uitgevoerd moet worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<script type="text/javascript">
    $(function(){
        $('.kom_online_click').click(function() {
            $('.kom_online_box').slideToggle(1500);
        });
    });
</script>

Wat moet ik gebruiken ipv .click, want nu gebeurt het alleen als ik op een link klik, hoe kan ik het laten gebeuren als er een vriend online komt ?

mvg Joost.
Gewijzigd op 01/01/1970 01:00:00 door /home/joost
 
PHP hulp

PHP hulp

29/03/2024 00:07:15
 
Mitchell

Mitchell

28/07/2009 15:56:00
Quote Anchor link
Hoe ziet je ajax gedeelte er dan precies uit? Want bij jquery kan je bij een succesvolle jquery ajax actie, een succes waarde uitvoeren (beetje als if true in php). En aan die succes, kun je dus een function koppelen.

Edit: Zie hier.
Gewijzigd op 01/01/1970 01:00:00 door Mitchell
 
/home/joost

/home/joost

28/07/2009 18:55:00
Quote Anchor link
Ik heb nu de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
$.ajax({
    type: "GET",
    url: "pages/check.php?check=nieuw_online_vriend",
    success: function(msg) {  
        if (msg != "") {
            $('.kom_online_box').slideToggle(1500);
            $('.kom_online_box').append(msg);
            setTimeout(function() {
                $('.kom_online_box').slideToggle(1500);
            }, 4000);
        }
    }
});

Alleen hoe kan ik dit laten herhalen (elke X seconden) ??
En om de hoeveel seconden kan ik dit het beste doen ??


En als PHP code (als test):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if ($_GET["check"] == "nieuw_online_vriend") {
    $nieuwe_vriend=rand(0, 1);
    if ($nieuwe_vriend == 1) {
        $naam = "Joost";
        echo "Je vriend(in) ".$naam." is online gekomen!";
    }
}

?>
Gewijzigd op 01/01/1970 01:00:00 door /home/joost
 
Mitchell

Mitchell

28/07/2009 19:47:00
 
/home/joost

/home/joost

28/07/2009 19:54:00
Quote Anchor link
Ik had de functie net gevonden, maar toch bedankt voor je reactie!

Nu loop ik tegen het volgende (hopelijk laatste) probleem:
Tekst word achter elkaar weergeven (dit komt door de append functie), hoe kan ik eerst de div legen ??

Huidig script:
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
function check_vriend() {
    $.ajax({
        type: "GET",
        url: "pages/check.php?check=nieuw_online_vriend",
        success: function(msg) {  
            if (msg != "") {
                $('.kom_online_box').slideToggle(1500);
                $('.kom_online_box_tekst').append(msg);
                setTimeout(function() {
                    $('.kom_online_box').slideToggle(1500);
                }, 3000);
            }
        }
    });
}
setInterval("check_vriend()", 5000);



P.s. Mitchell, is het jouw al gelukt om de chat te maken, ik heb me nu een beetje verdiept in jQuery en ik hoop een end te komen :p ;)

Edit::
deze reeks filmpjes heeft mij een heel eind op weg geholpen.
Gewijzigd op 01/01/1970 01:00:00 door /home/joost
 
Mitchell

Mitchell

28/07/2009 20:12:00
Quote Anchor link
Je kunt een div legen door gewoon .html("") te gebruiken.

Ik ben momenteel druk bezig aan een commercieel project, dus niet echt tijd gehad voor die chat en me persoonlijke social network site, helaas.. :/
 
/home/joost

/home/joost

28/07/2009 21:52:00
Quote Anchor link
Het is gelukt dankzij deze jQuery code:

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
<script type="text/javascript">
function check_vriend() {
    $.ajax({
        type: "GET",
        url: "pages/check.php?check=nieuw_online_vriend",
        success: function(msg) {  
            if (msg != "") {
                $('.notificatie_box').slideToggle(1500);
                $('.notificatie_box_tekst').append(msg);
                
                setTimeout(function() {
                    $('.notificatie_box').slideToggle(1500);
                }, 4000);
                
                setTimeout(function() {
                    $('.notificatie_box_tekst').html("");
                }, 5500);
            }
        }
    });
}
setInterval("check_vriend()", 6000);
</script>


en deze PHP code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if ($_GET["check"] == "nieuw_online_vriend") {
    $_SESSION["nieuwe_vriend"]=1;
    if ($_SESSION["nieuwe_vriend"] != 1) {
        $naam = "Joost";
        echo '<div>';
            echo '<div align="center"><div style="font-size: 18px;">'.$naam.'</div><img src="http://corinja.com/upload/IMG_0458_kl.jpg" height="45" /></div>';
            echo $naam." is nu online, klik hier om met hem/haar te chatten!";
        echo '</div>';
        $_SESSION["nieuwe_vriend"]++;
    }
}

?>


Nu alleen nog met PHP kijken of er een vriend is die in de afgelopen 6 seconden is ingelogd, maar dat zal wel lukken ;) bedankt voor je hulp!!




Edit::
Ik bedenk me net: "Wat gebeurd er als er nu 2 (of meer) online komen", hoe kan ik het zo maken dat er dan nog een boxje komt (boven de bovonste)??
Gewijzigd op 01/01/1970 01:00:00 door /home/joost
 
/home/joost

/home/joost

29/07/2009 20:33:00
Quote Anchor link
Bumpje
 
/home/joost

/home/joost

30/07/2009 17:29:00
Quote Anchor link
Iemand (a)
 
/home/joost

/home/joost

31/07/2009 15:49:00
Quote Anchor link
Is er echt niemand die me kan helpen (a) :p
Gewijzigd op 01/01/1970 01:00:00 door /home/joost
 
Wesley Overdijk

wesley Overdijk

31/07/2009 15:50:00
Quote Anchor link
dan zal ik het maar doen.

$(this).after("nog een div.");
 
/home/joost

/home/joost

31/07/2009 19:31:00
Quote Anchor link
Ik kom er niet echt uit, ik denk dat mijn opzet verkeerd is...

Zou iemand mij even opweg kunnen helpen, hoe kan ik dit het beste aanpakken ?

Ik heb het nu zo dat als ik inlog dat er dan in de tabel notificaties een bericht word aangemaakt....



Hoe kan ik deze gegevens het beste verwerken in PHP en dan laten tonen zoals bijv hyves dat doet ?
Edit::
De database structuur komt er zo aan....

Edit2::
CREATE TABLE `notificaties` (
`id` int(12) NOT NULL auto_increment,
`gebr_id` int(12) NOT NULL,
`bericht` text collate utf8_unicode_ci NOT NULL,
`van_id` int(12) NOT NULL,
`datum` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Edit3::
Ik hoef niet een kant en klaar script te hebben maar gewoon een tekst van dan moet je dit doen en dan dit, en daarvoor kun je deze functies gebruiken, ik wil er wel wat van leren ;)
Gewijzigd op 01/01/1970 01:00:00 door /home/joost
 
/home/joost

/home/joost

01/08/2009 18:50:00
Quote Anchor link
Bump....
 
Midas

Midas

01/08/2009 19:08:00
Quote Anchor link
Een div met die notificaties maken en zorgen dat de oudste altijd onderop zit. En dan na zoveel seconden weer laten verdwijnen etc.
 

01/08/2009 19:45:00
Quote Anchor link
Ik zou vanuit de php json of xml versturen. Dan kan je in jQuery d'r gewoon met each over elk element heen lopen. De div maak je ook in jQuery.
Maak xml wel met dom of simplexml, als de xml niet klopt (wat kan je gebeuren als je zelf xml in elkaar flanst) kan je rare situatie's krijgen. Voor de json json_encode.

jquery ajax json
jquery ajax xml
Beide heel simpel.
Gewijzigd op 01/01/1970 01:00:00 door
 



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.