私は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);
});
私は、データベース接続ファイルを持っています。問題はありません。もし私がそれを投稿することができます。私は
これをデバッグすると、どのように具体的に失敗しますか?ブラウザのデバッグツールでAJAX操作を観察します。彼らは成功していますか?予想される間隔でAJAXリクエストがサーバーに送信されていますか?サーバーの応答は何ですか? – David
私は初めてAJAXを使用しています。ブラウザにajaxを追加する方法私はFirefoxのブラウザを使用しています。エラー応答はありません。インデックスページにはメッセージは表示されません。しかし、私はメッセージを送るときにデータベースに行きます。 –
Firefoxでは、推奨されるデバッグツールがまだFirebugプラグインであると思います。それをFirefoxに追加して、AJAXコードが行っているネットワーク要求を調べるために使用します。現時点では無視しているエラーがあります。 – David