私はphpが初めてで、チュートリアルを通じて学ぼうとしています。現在、チャットのチュートリアルに取り組んでいます。最近、チュートリアルでバインドを使用するように求められた問題に遭遇しましたが、jquery ではもう機能しないと思います。メッセージボックスにメッセージを投げようとしています。これが私のjavascriptのコードです
var chat = {}
chat.fetchMessages = function () {
$.ajax({
url: 'ajax/chat.php',
type: 'post',
data: { method: 'fetch' },
success: function(data) {
$('.chat .messages').html(data);
}
});
}
chat.throwMessage = function (message) {
if ($.trim(message).length != 0) {
$.ajax({
url: 'ajax/chat.php',
type: 'post',
data: { method: 'throw', messsage: message },
success: function(data) {
chat.fetchMessages();
chat.entry.val('');
}
});
}
}
chat.entry = $('.chat .entry');
chat.entry.bind('keydown', function(e) {
if (e.keyCode === 13 && e.shiftKey === false) {
chat.throwMessage($(this).val());
e.preventDefault();
}
});
chat.interval = setInterval(chat.fetchMessages, 4000);
chat.fetchMessages();
情報が送信されるphpファイルは次のとおりです。
<?php
require '../core/init.php';
if (isset($_POST['method']) === true && empty($_POST['method']) === false) {
$chat = new Chat();
$method = trim($_POST['method']);
if ($method === 'fetch') {
$messages = $chat->fetchMessages();
if (empty($messages) === true) {
echo 'There are currently no messages in the chat';
} else {
foreach($messages as $message) {
?>
<div class="message">
<a href="#"><?php echo $message['username']; ?></a> says:
<p><?php echo $message['message']; ?></p>
</div>
<?php
}
}
} else if ($method === 'throw' && isset($_POST['message']) === true) {
$message = trim($_POST['message']);
if (empty($message) === false) {
$chat->throwMessage($_SESSION['user'], $message);
}
}
}
インスペクターを開くと、すべてのテストが正常に動作していますが、php コードがメッセージ ボックスにデータを表示していないようです。