JSON chat .
Hej.Jeg er i gang med at lave en JSON anmodning til chat fra en gæst til et medlem.
Det virker allerede.
Og hvis der er flere gæster der har anmodet om chat med samme medlem. Eks. bare 2. Så kommer der to popup beskeder, ovenover hinanden, som det skal.
Godkender jeg den ene, og vil godkende den anden også, for at kunne besvare begge to med det samme. Så går den sidste jeg godkendte, ind og åbner i samme chat vindue, og den gamle chat-samtale forsvinder. Hvordan laver man så den åbner et nyt til hver man godkender samtale med..
Er ikke sikker på hvilken del af mit script i skal bruge.
Dette er den der giver medlemmet besked om anmodning.
<script type="text/javascript">
$(
function()
{
watchforGuests();
}
);
function watchforGuests() {
$.post("/guestchat/guestWatch.php?session=<?=$session['sessionID']?>", function (data) {
json = $.parseJSON(data);
if (json['incomming']) {
for ( var i in json['chats'] ) {
if ($("#chat_"+json['chats'][i]['id']).length == 0) {
$("#chatWatcher").append("<div id='chat_"+json['chats'][i]['id']+"' class='chatRequest'><b>"+json['chats'][i]['navn']+" vil chatte med dig!</b><br><a onclick='accept("+json['chats'][i]['id']+");'>Godkend anmodning</a> - <a onclick='deny("+json['chats'][i]['id']+");'>Afvis anmodning</a></div>");
$.sound.play("/guestchat/chatInc.wav");
}
}
}
setTimeout("watchforGuests()", 5000);
});
}
function accept (sessionId) {
$("#chat_"+sessionId).hide("slow", function () { $("#chat_"+sessionId).remove(); });
newwindow=window.open('/guestchat/member.php?session='+sessionId,'memberChat','height=500,width=500', 'resizable=no');
if (window.focus) {newwindow.focus()}
return false;
}
function deny (sessionId) {
$("#chat_"+sessionId).hide("slow", function () { $("#chat_"+sessionId).remove(); });
$.post("/guestchat/guestWatch.php?action=denyChat&session="+sessionId);
}
</script>
Den her del er i member.php
<?
include("core.php");
include("chatTop.php");
if ($_GET['session'] != '' and is_numeric($_GET['session'])) {
$session = getSessionDataMember(mysql_real_escape_string($_GET['session']));
if (is_array($session)) {
// Got valid session from current member! Display the chat window.
?>
<script type="application/javascript" src="jquery1.6.1.js"></script>
<script>
var status = 0;
var lastMsgId = 0;
$(
function()
{
chatManager();
$("[id*=msg]").keydown(function(e) {
if (e.keyCode == 13) {
sendMsg();
}
}
);
});
function sendMsg() {
text = $("[id*=msg]").val();
if(text != '' && text != ' ') {
text = encodeURIComponent(text);
$("[id*=msg]").val("Sender vent venligst...").attr({disabled : "true"});
$.post("msgHandler.php?sender=member&session=<?=$session['sessionID']?>", "msg="+text, function (data) {
$("[id*=msg]").val('').removeAttr("disabled").focus();
});
}
}
function chatManager() {
if (status != 404) {
$.post("chatManager.php?sender=member&session=<?=$session['sessionID']?>", "lastMsgId="+lastMsgId, function (data) {
json = $.parseJSON(data);
if (status == 0) {
for ( var i in json['msg'] ) {
$(".msgArea").prepend("<b>" + json['msg'][i]['name'] + "</b> " + json['msg'][i]['msg'] + "<br>");
}
lastMsgId = json['lastMsgId'];
if (json['chatEnd']) {
alert("Gæsten lukkede chatten");
$("#send_controls").hide();
$(".msgArea").prepend("<em>Chatten blev afsluttet</em><br><br>");
status = 404;
}
}
});
setTimeout("chatManager()", 1500);
}
}
</script>
<div class='chatBox msgArea'><br><em>Chat med <?=$session['guestName']?> startet</em></div>
<center><a href="java script:$.post('chatManager.php?endChat=true&session=<?=$session['sessionID']?>&part=member');window.opener='x';window.close();" style="text-decoration: none; color:#FFF;">Afslut chatten</a></center>
<div id="send_controls" class="chatBox"><textarea id="msg" style="width:98%;" rows="4"></textarea><input type="button" value="Send" onClick="sendMsg();" id="sendButton" style="width:100%;"></div>
<?
} else {
echo "<div class='chatBox'><center><b>Adgang nægtet!</b><center></div>";
}
}
?>
Håber i kan hjælpe mig. vil være dejligt at få den del til at virke. :)