jQuery / AJAX
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)
1
2
3
4
5
6
7
2
3
4
5
6
7
<script type="text/javascript">
$(function(){
$('.kom_online_click').click(function() {
$('.kom_online_box').slideToggle(1500);
});
});
</script>
$(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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
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);
}
}
});
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)
Gewijzigd op 01/01/1970 01:00:00 door /home/joost
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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);
$.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
Ik ben momenteel druk bezig aan een commercieel project, dus niet echt tijd gehad voor die chat en me persoonlijke social network site, helaas.. :/
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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>
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
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"]++;
}
}
?>
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
Bumpje
Iemand (a)
Gewijzigd op 01/01/1970 01:00:00 door /home/joost
$(this).after("nog een div.");
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;
`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
Bump....
Een div met die notificaties maken en zorgen dat de oudste altijd onderop zit. En dan na zoveel seconden weer laten verdwijnen etc.
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.