не показывать сообщения на странице индекса

Я пытаюсь создать небольшое приложение чата, используя php, mysql и ajax. После использования функции AJAX сообщения не отображаются в выводе. но данные передаются в базу данных.

код индексной страницы

<?php

require('includes/core.inc.php');

if(isset($_POST['send'])){

if(send_msg($_POST['sender'], $_POST['message'])){
echo 'Message sent.';
}else{
echo 'message faild to sent.';
}

}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<!--Page title-->
<title>chat application</title>

<!--css stylesheet-->
<link type="text/css" rel="stylesheet" href="public/css/main.css"/>
</head>
<body>

<div id="input">
<form action="index.php" method="post">
<lable>Enter name:<input type="text" name="sender"/></lable>
<lable>Enter message:<input type="text" name="message"/></lable><br/>
<input type="submit" name="send" value="send message"/>
</form>
</div><!--input--><div id="messages">

</div> <!--Messages-->

<!--JAVASCRIPT-->

<script type="text/javascript" src="scripts/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="scripts/js/auto_chat.js"></script></body>
</html>

chat.php

<?php
require('../../includes/database/connect.db.php');
require('../../includes/functions/chat.func.php');

$messages = get_msg();
foreach($messages as $message){
echo '<strong>'.$message['sender'].' sent</strong><br/>';
echo $message['message'].'<br/><br/>';
}

?>

функции чата

<?php

function get_msg(){

$query = "SELECT Sender,Message FROM chat";

$run = mysql_query($query);

$messages = array();if($run === FALSE) {
die(mysql_error()); // TODO: better error handling
}while($message = mysql_fetch_assoc($run)){

$messages[] = array('sender'=>$message['Sender'], 'message'=>$message['Message']);

}

return $messages;

}

function send_msg($sender, $message){
if(!empty($sender) && !empty($message)){
$sender = mysql_real_escape_string($sender);
$message = mysql_real_escape_string($message);

$query = "INSERT INTO chat VALUES (null , '{$sender}', '{$message}')";

if($run = mysql_query($query)){
return true;
}else{
return false;
}

}else{
return false;
}

}

?>

AJAX часть я добавил это. Я думаю, что здесь проблема, но я не могу ее найти. Я раньше не использовал jquery и ajax. так есть ли какие-то предварительные условия?

$(document).ready(function() {
var interval = setInterval(function() {
$.ajax({
url: 'scripts/php/chat.php',
success: function(data){
$('#messages').html(data);
}
});
}, 1000);
});

У меня есть файл подключения к базе данных. но нет проблем. если хотите, я могу опубликовать это. Помогите мне, пожалуйста

1

Решение

просто поместите ниже код в index.php файл

<?php
error_reporting(0);
$conn = mysql_connect('localhost','root','');
$db = mysql_select_db('test',$conn);
function send_msg($sender, $message){
if(!empty($sender) && !empty($message)){
$sender = mysql_real_escape_string($sender);
$message = mysql_real_escape_string($message);
$query = "INSERT INTO chat VALUES (null , '{$sender}', '{$message}')";
if($run = mysql_query($query)){
return true;
}else{
return false;
}
}else{
return false;
}
}
if(isset($_POST['send'])){
if(send_msg($_POST['sender'], $_POST['message'])){
echo 'Message sent.';
}else{
echo 'message faild to sent.';
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<!--Page title-->
<title>chat application</title>
<!--css stylesheet-->
<link type="text/css" rel="stylesheet" href="public/css/main.css"/>
</head>
<body>
<div id="input">
<form action="" method="post">
<lable>Enter name:<input type="text" name="sender"/></lable>
<lable>Enter message:<input type="text" name="message"/></lable><br/>
<input type="submit" name="send" value="send message"/>
</form>
</div><!--input-->
<div id="messages">
</div> <!--Messages-->
</body>
</html>
<script src="https://code.jquery.com/jquery-3.2.1.js"></script>
<script>
$(document).ready(function() {
var interval = setInterval(function() {
$.ajax({
url: 'test1.php',
success: function(data){
$('#messages').html(data);
}
});
}, 1000);
});
</script>

и создать один файл для вызова AJAX test1.php и поместите ниже код

<?php
error_reporting(0);
$conn = mysql_connect('localhost','root','');
$db = mysql_select_db('test',$conn);
function get_msg(){
$query = "SELECT Sender,Message FROM chat";
$run = mysql_query($query);
$messages = array();

if($run === FALSE) {
die(mysql_error()); // TODO: better error handling
}

while($message = mysql_fetch_assoc($run)){
$messages[] = array('sender'=>$message['Sender'], 'message'=>$message['Message']);
}
return $messages;
}$messages = get_msg();
foreach($messages as $message){
echo '<strong>'.$message['sender'].' sent</strong><br/>';
echo $message['message'].'<br/><br/>';
}

?>

выше будет работать на меня. нет необходимости в других файлах JS.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector