Avatar billede rix Novice
27. april 2010 - 08:31 Der er 4 kommentarer og
1 løsning

hjælp til en ajax chat

jeg er lige begyndt at rode rundr med java script så hav tolmodig hed med mig og bære over at jeg er stiller spøgsmål

men lige en lille stykke af koden

sendReq.onreadystatechange = handleSendChat;
                    var param = 'message=' + document.getElementById('txt_message').value;
                    param += '&name= hejhej';
                    param += '&chat=1';
                    sendReq.send(param);
                    document.getElementById('txt_message').value = '';
                }                   




det jeg ville have den til at gøre er føglende

der hvor der står hejhej i denne lille kode    

param += '&name= hejhej';

ville jeg gerne have at man smide $nick ind hvis man kunne den indholder chat navn som brugen ville vises med    håber det kan lade sig gøre :D

når jeg prøver på at få det til at fungere virker den ikke og har søgt på den hjemme side jeg har fundet koden men den skriver bare " det kommer vi til senere" eller sådan noget :D men det kom ikke har også søgt rundt omkring men synes ikke jeg kunne finde noget jeg kunne bruge så håber der er nogen der kan hjælpe :D   
            }
Avatar billede olebole Juniormester
28. april 2010 - 13:27 #1
<ole>

Det kræver jo nok, vi ved en anelse mere  =)

/mvh
</bole>
Avatar billede rix Novice
29. april 2010 - 19:09 #2
nu er jeg nybegynder men tror jeg ved hvad du mener

denne kode
sendReq.onreadystatechange = handleSendChat;
                    var param = 'message=' + document.getElementById('txt_message').value;
                    param += '&name= hejhej';
                    param += '&chat=1';
                    sendReq.send(param);
                    document.getElementById('txt_message').value = '';
                }                 

er til at gemme den brugers oplysning der skriver men som den er nu gemmer den det navn som hejhej som skriver men har en php kode som heder $nick som jeg ville have derind men da det er java scrpts ved jeg ikke hvordan jeg skal få det til at fungere har prøvet lidt forskeligt


hvis det ikke besvare din spøgsmål så må jeg høre om hvad det er du søger efter
Avatar billede rix Novice
30. april 2010 - 01:30 #3
hmm bliver lige bange for at det er andet du mener så kommer med de sider som jeg tror du ville kommer og spøger efter

føst den side som den kode jeg viser jer og som viser chaten

<!--
    This is the HTML file for the front-end of the AJAX Driven Chat application
    This code was developed by Ryan Smith of 345 Technical Services
   
    You may use this code in your own projects as long as this copyright is left
    in place.  All code is provided AS-IS.
    This code is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   
    For the rest of the code visit http://www.DynamicAJAX.com
   
    Copyright 2005 Ryan Smith / 345 Technical / 345 Group.
-->
<html>
    <head>
        <title>AJAX Driven Web Chat</title>
        <style type="text/css" media="screen">
            .chat_time {
                font-style: italic;
                font-size: 9px;
            }
        </style>
        <script language="JavaScript" type="text/javascript">
            var sendReq = getXmlHttpRequestObject();
            var receiveReq = getXmlHttpRequestObject();
            var lastMessage = 0;
            var mTimer;
            //Function for initializating the page.
            function startChat() {
                //Set the focus to the Message Box.
                document.getElementById('txt_message').focus();
                //Start Recieving Messages.
                getChatText();
            }       
            //Gets the browser specific XmlHttpRequest Object
            function getXmlHttpRequestObject() {
                if (window.XMLHttpRequest) {
                    return new XMLHttpRequest();
                } else if(window.ActiveXObject) {
                    return new ActiveXObject("Microsoft.XMLHTTP");
                } else {
                    document.getElementById('p_status').innerHTML = 'Status: Cound not create XmlHttpRequest Object.  Consider upgrading your browser.';
                }
            }
           
            //Gets the current messages from the server
            function getChatText() {
                if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
                    receiveReq.open("GET", 'getChat.php?chat=1&last=' + lastMessage, true);
                    receiveReq.onreadystatechange = handleReceiveChat;
                    receiveReq.send(null);
                }           
            }
            //Add a message to the chat server.
            function sendChatText() {
                if(document.getElementById('txt_message').value == '') {
                    alert("You have not entered a message");
                    return;
                }
                if (sendReq.readyState == 4 || sendReq.readyState == 0) {
                    sendReq.open("POST", 'getChat.php?chat=1&last=' + lastMessage, true);
                    sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                    sendReq.onreadystatechange = handleSendChat;
                    var param = 'message=' + document.getElementById('txt_message').value;
                    param += '&name=Ryan Smith';
                    param += '&chat=1';
                    sendReq.send(param);
                    document.getElementById('txt_message').value = '';
                }                           
            }
            //When our message has been sent, update our page.
            function handleSendChat() {
                //Clear out the existing timer so we don't have
                //multiple timer instances running.
                clearInterval(mTimer);
                getChatText();
            }
            //Function for handling the return of chat text
            function handleReceiveChat() {
                if (receiveReq.readyState == 4) {
                    var chat_div = document.getElementById('div_chat');
                    var xmldoc = receiveReq.responseXML;
                    var message_nodes = xmldoc.getElementsByTagName("message");
                    var n_messages = message_nodes.length
                    for (i = 0; i < n_messages; i++) {
                        var user_node = message_nodes[i].getElementsByTagName("user");
                        var text_node = message_nodes[i].getElementsByTagName("text");
                        var time_node = message_nodes[i].getElementsByTagName("time");
                        chat_div.innerHTML += user_node[0].firstChild.nodeValue + '&nbsp;';
                        chat_div.innerHTML += '<font class="chat_time">' + time_node[0].firstChild.nodeValue + '</font><br />';
                        chat_div.innerHTML += text_node[0].firstChild.nodeValue + '<br />';
                        chat_div.scrollTop = chat_div.scrollHeight;
                        lastMessage = (message_nodes[i].getAttribute('id'));
                    }
                    mTimer = setTimeout('getChatText();',2000); //Refresh our chat in 2 seconds
                }
            }
            //This functions handles when the user presses enter.  Instead of submitting the form, we
            //send a new message to the server and return false.
            function blockSubmit() {
                sendChatText();
                return false;
            }
            //This cleans out the database so we can start a new chat session.
            function resetChat() {
                if (sendReq.readyState == 4 || sendReq.readyState == 0) {
                    sendReq.open("POST", 'getChat.php?chat=1&last=' + lastMessage, true);
                    sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                    sendReq.onreadystatechange = handleResetChat;
                    var param = 'action=reset';
                    sendReq.send(param);
                    document.getElementById('txt_message').value = '';
                }                           
            }
            //This function handles the response after the page has been refreshed.
            function handleResetChat() {
                document.getElementById('div_chat').innerHTML = '';
                getChatText();
            }   
        </script>
    </head>
    <body onload="java script:startChat();">
        <h2><a href="http://www.dynamicAJAX.com" style="color: #000000; text-decoration: none;">AJAX Driven Web Chat</a></h2>
        <p id="p_status">Status: Normal</p>
        Current Chitter-Chatter:
        <div id="div_chat" style="height: 300px; width: 500px; overflow: auto; background-color: #CCCCCC; border: 1px solid #555555;">
           
        </div>
        <form id="frmmain" name="frmmain" onsubmit="return blockSubmit();">
            <input type="button" name="btn_get_chat" id="btn_get_chat" value="Refresh Chat" onclick="java script:getChatText();" />
            <input type="button" name="btn_reset_chat" id="btn_reset_chat" value="Reset Chat" onclick="java script:resetChat();" /><br />
            <input type="text" id="txt_message" name="txt_message" style="width: 447px;" />
            <input type="button" name="btn_send_chat" id="btn_send_chat" value="Send" onclick="java script:sendChatText();" />
        </form>
    </body>
   
</html>



så den side hvor alle php koder er og som den henter data fra

<?php
/*
    This is the PHP backend file for the AJAX Driven Chat application.
   
    You may use this code in your own projects as long as this copyright is left
    in place.  All code is provided AS-IS.
    This code is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   
    For the rest of the code visit http://www.DynamicAJAX.com
   
    Copyright 2005 Ryan Smith / 345 Technical / 345 Group.
*/

//Send some headers to keep the user's browser from caching the response.
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
header("Cache-Control: no-cache, must-revalidate" );
header("Pragma: no-cache" );
header("Content-Type: text/xml; charset=utf-8");

require('database.php');

//Check to see if a message was sent.
if(isset($_POST['message']) && $_POST['message'] != '') {
    $sql = "INSERT INTO message(chat_id, user_id, user_name, message, post_time) VALUES (" .
            db_input($_GET['chat']) . ", 1, '" . db_input($_POST['name']) .
            "', '" . db_input($_POST['message']) . "', NOW())";
    db_query($sql);
}
//Check to see if a reset request was sent.
if(isset($_POST['action']) && $_POST['action'] == 'reset') {
    $sql = "DELETE FROM message WHERE chat_id = " . db_input($_GET['chat']);
    db_query($sql);
}

//Create the XML response.
$xml = '<?xml version="1.0" ?><root>';
//Check to ensure the user is in a chat room.
if(!isset($_GET['chat'])) {
    $xml .='Your are not currently in a chat session.  <a href="">Enter a chat session here</a>';
    $xml .= '<message id="0">';
    $xml .= '<user>Admin</user>';
    $xml .= '<text>Your are not currently in a chat session.  &lt;a href=""&gt;Enter a chat session here&lt;/a&gt;</text>';
    $xml .= '<time>' . date('h:i') . '</time>';
    $xml .= '</message>';
} else {
    $last = (isset($_GET['last']) && $_GET['last'] != '') ? $_GET['last'] : 0;
    $sql = "SELECT message_id, user_name, message, date_format(post_time, '%h:%i') as post_time" .
        " FROM message WHERE chat_id = " . db_input($_GET['chat']) . " AND message_id > " . $last;
    $message_query = db_query($sql);
    //Loop through each message and create an XML message node for each.
    while($message_array = db_fetch_array($message_query)) {
        $xml .= '<message id="' . $message_array['message_id'] . '">';
        $xml .= '<user>' . htmlspecialchars($message_array['user_name']) . '</user>';
        $xml .= '<text>' . htmlspecialchars($message_array['message']) . '</text>';
                $xml .= '<time>' . $message_array['post_time'] . '</time>';
        $xml .= '</message>';
    }
}
$xml .= '</root>';
echo $xml;
?>
Avatar billede rix Novice
04. maj 2010 - 06:35 #4
er der ingen der kan hjælpe mig giver den lige en sideste chance
Avatar billede rix Novice
05. maj 2010 - 21:41 #5
hmm åben bart ikke kommer med spøgsmålet om en uge for at se om det giver svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester