jQuery / AJAX
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:
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.
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
Gesponsorde koppelingen:
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.
Edit: Zie hier.
Gewijzigd op 01/01/1970 01:00:00 door Mitchell
Ik heb nu de volgende code:
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)
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
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:
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 ;)
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
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.. :/
Ik ben momenteel druk bezig aan een commercieel project, dus niet echt tijd gehad voor die chat en me persoonlijke social network site, helaas.. :/
Het is gelukt dankzij deze jQuery code:
en deze PHP code:
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!!
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)
Is er echt niemand die me kan helpen (a) :p
Gewijzigd op 01/01/1970 01:00:00 door /home/joost
dan zal ik het maar doen.
$(this).after("nog een div.");
$(this).after("nog een div.");
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 ?
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.
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.
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 Karl Karl



