Javascript 使用JQuery将文本从文件打印到div
我正在我的网站上聊天,我有代码,允许用户输入文本并按enter键提交。输入与使用php将输入写入文件一起工作,但是用于将文件中的输入添加到的函数似乎不起作用。它添加了用户的昵称,但用户输入的消息从未出现。我做错了什么 我已经想了两天了。提前谢谢你 Javascript/JQuery: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
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);