AJAX i PHP wyskakuje undefined

0

Witam chce aby strona się nie odświeżała tylko jeden element, ale wyskakuje mi undefined.

<form method="post" id="send" action="send.php" >
        <div id="content">
<textarea id="chatwindow" style="margin: 0px; width: 500px; height: 160px;" readonly>
<?php
require('get.php');
?> 

			</textarea>
</div>
            <input id="text" name="tekst" type="text" size="50" maxlength="80"  onkeyup="keyup(event.keyCode);" placeholder="Napisz coś">
            <input type="button" name="send" hidden="hidden" value="Wyslij" style="cursor:pointer;border:1px solid gray;"><br><br>
			</form>
		</div>
		</div>
		</div>
    </body>
</html>
<script type="text/javascript">
$(document).ready(function(){
	
	$("#send").submit(function(){
      
       $.ajax({
         type: "POST",
        url: "send.php",
         data:"tekst="+$("#tekst").val(),
        success: function(){ 
                $("#chatwindow").load("get.php");
                $("#tekst").val('');
                }})
    
     var textarea = document.getElementById('chatwindow');
textarea.scrollTop = textarea.scrollHeight;
     return false;
    });
        window.setInterval(function(){
        $("#chatwindow").load("get.php");
    }, 1000);
});
var textarea = document.getElementById('chatwindow');
textarea.scrollTop = textarea.scrollHeight;
</script> 

I taki kod PHP

 $u = $_SESSION['user'];
$tekst = addslashes(mysql_escape_string($_POST['tekst']));
if ($tekst == NULL) {
} else {
if ($tekst == "/cls") {
mysql_query("DELETE FROM chat");
mysql_query("INSERT INTO `chat`(`usrname`, `color`, `tekst`, `chattime`) VALUES ('System',0,'Chat został wyczyszczony przez Moderatora',now())");
} else {

mysql_query("INSERT INTO `chat`(`usrname`, `color`, `tekst`, `chattime`) VALUES ('$u',0,'$tekst',now())");
}
}

header("Location: gra.php");

0
  1. Czat za pomocą setInterval to bardzo zły pomysł, o czym się przekonasz, gdy zajedziesz serwer dziesięcioma klientami. Nawet w ramach ćwiczeń ajaxa jest to kiepski wybór.
  2. Rozszerzenie mysql (a zatem wszystkie funkcje mysql_) zostało zdeprecjonowane oraz usunięte z PHP - wykorzystaj PDO. Przy okazji wtedy pozbędziesz się konieczności robienia protez za pomocą mysql_escape_string oraz addslashes, mogąc w zamian wykorzystać bindowanie parametrów.
  3. Szanuj czytelników - nie jesteśmy Twoimi sługami, nie płacisz nam za pomoc, zatem sformatuj swoje kody porządnie, rozpisz co i jak, jak działa, kiedy nie działa etc.
0

A w jakim języku polecasz zrobić chat do gry?
Tutaj chodzi mi o to, że nie wiem jak ustawić date w AJAX by korzystała z pliku PHP.

0

NodeJS + Socket.io

0

A mógłby ktoś wytłumaczyć jak pobrać date z skryptu php do ajaxa

0

Tutaj masz w miarę prosto wyjaśnione na takim przykładzie, z JQuery i PHP
https://css-tricks.com/jquery-php-chat/

Jednak do normalnego użytku to się nie nadaje, bazuje to na pliku txt do którego są zapisywane i odczytywane wiadomości, im tego więcej, to tym wolniej to działa.

Zwróć uwagę że w tym czacie pobierany jest aktualny status i zobaczysz przychodzące wiadomości dopiero po tym jak się zalogujesz i sam coś wpiszesz, do memo dopisywane są tylko nowe wiadomości a nie wpisywany za każdym razem cały tekst, które ktoś inny wysłał, licząc od aktualnego statusu a ten bazuje na ilości linii w pliku txt. To można dość łatwo przerobić na czat z bazą danych, tylko że w tym celu status należy sprawdzać na bazie PK (id autoincrement).

Zwróć uwagę że ten czat opiera się o JSON który otrzymujesz ze skryptu PHP który co jakiś czas pobiera nowe dane.

1 użytkowników online, w tym zalogowanych: 0, gości: 1