// Odbieranie danych metodą post
$tresc = htmlspecialchars(trim($_POST['tresc']));
$kto = htmlspecialchars(trim($_POST['kto']));
$zkim = htmlspecialchars(trim($_POST['zkim']));
include('dodaj/setting.php');
//Dodawanie rekordów do bazy mysql
$dodaj = "INSERT INTO wiadomosci (tresc, kto, zkim) VALUES ('$tresc', '$kto', '$zkim')";
mysql_query($dodaj) or die(mysql_error());
Chcę zeby bez przeładowania strony dodało dane do bazy mysql.
Niestety nie działa ten kod.
Co tu jest źle??
Niech ktoś napisze gdzie jest błąd bo ja nie znam ajax js czy czego tam jeszcze można użyć do tego.
Pomijając fakt (niepotrzebnie) długiego forma (nie będę go poprawiać, ale radzę go skrócić). Ten echo mi się bardzo nie podoba. Po prostu czytelność jest mała co prowadzi do popełniania błędów.
Zapytanie masz ok, więc je sobie pominiemy. Użyjmy sobie print_ w zapisz, oraz argumentu data w success do sprawdzenia co masz źle
Tworzymy 2pliki, plik 1 (który odpalasz przez przeglądarkę)
W kodzie który cię interesuje nic nie trzeba pobierać. A kod pobierasz tak jak pokazałem to w przypadku sprawdzania co wpisujesz.
Patrząc na nazwy zmiennych interesuje cie chat. Użyj sobie load. W jednym pliku wyświetlasz całą treść, a potem za pomocą load (wczytanie), oraz setTimeout(co jakiś czas) pobierasz i dajesz sobie do div’a.
function reload(){ $('#wiadomosci').load('messages.php');
Daj cały kod. To co jest tam (po moich poprawkach) jest ok. Jak byś przeczytał/a, oraz zastosował/a się do mojego pierwszego postu. Wywaliło by to co potrzebuję wiedzieć i było by ok. ALE NIE. Ty musisz robić po swojemu.
<?php
// Odbieranie danych metodą post
$tresc = htmlspecialchars(trim($_POST['tresc']));
$kto = htmlspecialchars(trim($_POST['kto']));
$zkim = htmlspecialchars(trim($_POST['zkim']));
print_r($tresc);
print_r($kto);
print_r($zkim);
include("dodaj/setting.php");
//Dodawanie rekordów do bazy mysql
$dodaj = "INSERT INTO czat (kto, zkim, tresc) VALUES ('$kto', '$zkim', '$tresc')";
mysql_query($dodaj) or die(mysql_error());
?>
Style ma być w jednym znaczniku, script tak samo. Pomijając fakt że masz wszystko w echo (nauczysz się jak będzie tam trzeba coś zmienić :P)
masz:
if(isset($_POST['wyslij']))
Gdzie w post nie wysyłasz zmiennej wyslij …
Więc jak coś ma się zrobić skoro bez tego pomijasz fragment kodu z wysyłaniem. BA nawet bez ajax, twój kod nic nie wyśle bo twój form również wyslij nie ma … Więc twój problem to nie js, a php
Masz nauczkę na przyszłość, jak podajesz kod lepiej podać więcej niż zdaje się że się przyda.