Я пытаюсь настроить работу чата с использованием PHP и mysql и AJAX. Он почти полностью функционирует, за исключением того, что я не могу понять, как отправить сообщение чата без перезагрузки страницы. У меня есть страница sendchat. php, которая принимает данные с предыдущей страницы и вводит данные в базу данных. Я пытаюсь использовать поле ввода текста, и когда пользователь нажимает клавишу ввода, он запускает страницу PHP с информацией, необходимой для отправки в sendchat. php без фактической загрузки или обновления страницы. Это то, что у меня есть:
<form id="send-message-area">
<p>Your message: </p>
<input type="text" id="sendie" maxlength = '100' onkeydown="onChatEnter(this);"></textarea>
</form>
</div>
</td></tr></table>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">
function onChatEnter(str) {
if(event.key === 'Enter') {
$.ajax({
type: "GET",
url: "sendchat.php?msg=" + str ,
success : function() {
// here is the code that will run on client side after running clear.php on server
}
});
}
</script>
Все, что он делает, это пытается загрузить URL-адрес, но не пытается найти sendchat. php или отправить данные. Вместо этого он просто пытается загрузить пустую страницу. Куда я здесь не так? Кажется, все написано правильно и чувствительно к регистру. Я проверяю, нажал ли пользователь ввод, когда нажал клавишу. Если они это сделали, я загружаю AJAX функцию для выполнения PHP страницы. Тем не менее, он этого не делает. Я просто не хочу, чтобы там нажимали кнопку.
РЕДАКТИРОВАТЬ:
Я попробовал предложения ниже и до сих пор ничего. Я решил попробовать другой подход сейчас. Все еще не работает.
<script>
function updatechat(str) {
if(event.key === 'Enter') {
if (str=="") {
document.getElementById("sendie").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (this.readyState==4 && this.status==200) {
document.getElementById("sendie").innerHTML=this.responseText;
}
}
xmlhttp.open("GET","sendchat.php?msg="+str,true);
xmlhttp.send();
}
}
</script>
<p>Your message: </p>
<input type="text" id="sendie" maxlength = '100' onkeypress="updatechat(this.value);"></input>