Javascript 使用JQuery将文本从文件打印到div

Javascript 使用JQuery将文本从文件打印到div,javascript,php,jquery,Javascript,Php,Jquery,我正在我的网站上聊天,我有代码,允许用户输入文本并按enter键提交。输入与使用php将输入写入文件一起工作,但是用于将文件中的输入添加到的函数似乎不起作用。它添加了用户的昵称,但用户输入的消息从未出现。我做错了什么 我已经想了两天了。提前谢谢你 Javascript/JQuery: var instanse = false; var file = 'data.txt' function Chat() { /* call update chat funct

我正在我的网站上聊天,我有代码,允许用户输入文本并按enter键提交。输入与使用php将输入写入文件一起工作,但是用于将文件中的输入添加到的函数似乎不起作用。它添加了用户的昵称,但用户输入的消息从未出现。我做错了什么

我已经想了两天了。提前谢谢你

Javascript/JQuery:

    var instanse = false;
    var file = 'data.txt'
    function Chat() {
        /* call update chat function */
        this.update = updateChat;
        /* call send chat function */
        this.send = sendChat;
        /* call get state function */
        this.getState = getState;
    }
    //define get state function
    function getState() {
        if(!instanse){
            instanse = true;
            /* define AJAX function */
            $.ajax({
                type: "POST",
                url: "ajax.php",
                data: {'function': 'getState', 'file': file},
                dataType: "json",  
                success: function(data) {state = data.state;instanse = false;}
            });
        }
    }
    //define update chat function
    function updateChat() {
        if(!instanse){
            instanse = true;
            /* define AJAX function */
            $.ajax({
                type: "POST",
                url: "ajax.php",
                data: {'function': 'update','state': state,'file': file},
                dataType: "json",
                success: function(data) {
                    if(data.text){
                        /* manage data */
                        for (var i = 0; i < data.text.length; i++) {
                            $('#chat-row').append($(""+ data.text[i] +""));
                        }  
                    }
                    /* manage position of current chat */
                    document.getElementById('chat-row').scrollTop = document.getElementById('chat-row').scrollHeight;
                    instanse = false;
                    state = data.state;
                }
            });
        }
        else {
        setTimeout(updateChat, 1000);
        }
    }
    //define send chat function
    function sendChat(msg, name) { 
        updateChat();
        /* define AJAX function */
        $.ajax({
            type: "POST",
            url: "ajax.php",
            /* manage message */
            data: {'function': 'send','message': msg,'nickname': name,'file': file},
            dataType: "json",
            success: function(data){
                updateChat();
            }
        });
    }
//--------------------
    // open popup prompt for ask name of user    
        var name = prompt("Enter your name:", "Guest");
        // default name is 'Guest'
        if (!name || name === ' ') {
            name = "Guest";  
        }
        // strip tags
        name = name.replace(/(<([^>]+)>)/ig,"");
        // display name on page
        $("#user-name").html("User: <strong>" + name + "</strong>");
        var chat = new Chat()
        $(function() {
            chat.getState(); 
            /* define function when key presses */
            $("#posttext").keydown(function(event) {  
                var key = event.which;  
                /* if key including return. */
                if (key >= 33) {
                    var maxLength = $(this).attr("maxlength");  
                    var length = this.value.length;  
                    /* define limit of new content */
                    if (length >= maxLength) {  
                        event.preventDefault();  
                    }  
                }  
            });
            /* define function when key release */
            $('#posttext').keyup(function(e) {  
                if (e.keyCode == 13) { 
                    var text = $('#posttext').val();
                    var maxLength = $(this).attr("maxlength");  
                    var length = text.length; 
                    // send 
                    if (length <= maxLength + 1) { 
                        chat.send(text, name);  
                        $(this).val("");
                    } 
                    else {
                        $(this).val(text.substring(0, maxLength));
                    }  
                }
            });
        });
var instanse=false;
var文件='data.txt'
函数Chat(){
/*呼叫更新聊天功能*/
this.update=updateChat;
/*呼叫发送聊天功能*/
this.send=sendChat;
/*调用获取状态函数*/
this.getState=getState;
}
//定义获取状态函数
函数getState(){
如果(!instance){
instanse=true;
/*定义AJAX函数*/
$.ajax({
类型:“POST”,
url:“ajax.php”,
数据:{'function':'getState','file':file},
数据类型:“json”,
成功:函数(数据){state=data.state;instance=false;}
});
}
}
//定义更新聊天功能
函数updateChat(){
如果(!instance){
instanse=true;
/*定义AJAX函数*/
$.ajax({
类型:“POST”,
url:“ajax.php”,
数据:{'function':'update','state':state,'file':file},
数据类型:“json”,
成功:功能(数据){
if(data.text){
/*管理数据*/
对于(var i=0;i)/ig,“”;
//在页面上显示名称
$(“#用户名”).html(“用户:”+name+“”);
var chat=newchat()
$(函数(){
getState();
/*定义按键时的功能*/
$(“#posttext”).keydown(函数(事件){
var key=event.which;
/*如果键包括返回*/
如果(键>=33){
var maxLength=$(this.attr(“maxLength”);
变量长度=this.value.length;
/*定义新内容的限制*/
如果(长度>=最大长度){
event.preventDefault();
}  
}  
});
/*定义按键释放时的功能*/
$('#posttext').keyup(函数(e){
如果(e.keyCode==13){
var text=$('#posttext').val();
var maxLength=$(this.attr(“maxLength”);
var length=text.length;
//发送

if(length)你是说你正在写一个文本文件来保存这些聊天吗?@Rasclatt是的。PHP正在将用户名和消息写入data.txt文件,这很好。我的问题是UpdateChat函数只能从文件而不是消息中获取用户名。
<?php
$function = $_POST['function'];
$log = array();
switch($function) {
    /* get state case */
    case('getState'):
        /* check file available or not */
        if (file_exists('data.txt')) {
            /* assign to variable */
            $lines = file('data.txt');
        }
        $log['state'] = count($lines); 
        break;
    /* update case */
    case('update'):
        $state = $_POST['state'];
        /* check file available or not */
        if (file_exists('data.txt')) {
            /* assign to variable */
            $lines = file('data.txt');
        }
        $count =  count($lines);
        if ($state == $count){
            /* if state & count are equal */
            $log['state'] = $state;
            $log['text'] = false;
        } else {
            /* if state & count are no equal */
            $text= array();
            $log['state'] = $state + count($lines) - $state;
            foreach ($lines as $line_num => $line) {
                if ($line_num >= $state){
                    $text[] =  $line = str_replace("\n", "", $line);
                }
            }
            $log['text'] = $text; 
        }
        break;
    /* send case */
    case('send'):
        $nickname = htmlentities(strip_tags($_POST['nickname']));
        $reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
        $message = htmlentities(strip_tags($_POST['message']));
        if (($message) != "\n") {
            if (preg_match($reg_exUrl, $message, $url)) {
                $message = preg_replace($reg_exUrl, '<a href="'.$url[0].'" target="_blank">'.$url[0].'</a>', $message);
            } 
            fwrite(fopen('data.txt', 'a'), "<div>". $nickname . "</div> \n" . $message);
        }
        break;
}

echo json_encode($log);