Witajcie. Mam pewien problem z AJAXem. Nie do końca znam się na tym (właściwie to dopiero zaczynam z tym przygodę. Chciałbym to zaimplementować do formularza logowania, gdzie po zalogowaniu (bądź nie) nad przyciskiem zaloguj pojawi się stosowny komunikat - oczywiście bez przeładowania strony, ładnie sobie "wyjeżdżając". Ale zanim do tego dojdę chciałem ogólnie zapoznać się z tematem i zrobić coś prostego. I tak mam pliki:
test.html<!DOCTYPE html>
<!-- SKRYPT AJAX WYŚWIETLA OKNO ALERT Z ZAWARTOŚCIĄ POLA INPUT O NAZWIE tresc_testowa -->
<script type="text/javascript"> jQuery(document).ready(function() {
<!-- Po wciśnięciu obiektu (button KLIK) o id=wyswietl_alert -->
$("#wyswietl_alert").click(function() {
<!-- pobierz tekst z pola input o nazwie name=tresc_testowa -->
var wiadomosc = $('input[name=tresc_testowa]').val();
//wyswietl tekst z inputa name=tresc_testowa w okie alertowym
alert(wiadomosc);
});
});
<form action="" method="post"> <input name="tresc_testowa" type="text"> <input type="button" id="wyswietl_alert" name="wyswietl_alert" value="KLIK" />
I Super, wszystko działa. Wpisany tekst pojawia mi się wyskakującym okienku. Teraz chciałem to zmodyfikować, żeby wyświetlić to pod spodem (z użyciem PHP do obróbki formularza - ustawiłem warunek), ale nie chce mi to działać. Oto pliki
test.html <!DOCTYPE html>
<!-- SKRYPT AJAX WYŚWIETLA OKNO ALERT Z ZAWARTOŚCIĄ POLA INPUT O NAZWIE tresc_testowa -->
<script type="text/javascript"> jQuery(document).ready(function() {
<!-- Po wciśnięciu obiektu (button KLIK) o id=wyswietl_alert -->
$("#wyswietl_alert").click(function() {
<!-- pobierz tekst z pola input o nazwie name=tresc_testowa -->
var wiadomosc = $('input[name=tresc_testowa]').val();
//wyswietl tekst z inputa name=tresc_testowa w divie #tu_pokaz_wiadomosc
$.ajax({
url: "przetworz.php",
type: "POST",
data: "wiadomosc="+tekst,
success: function(wdm) {
$("#tu_pokaz_wiadomosc").text(wdm);
}
});
});
});
<form action="" method="post"> <input name="tresc_testowa" type="text"> <input type="button" id="wyswietl_alert" name="wyswietl_alert" value="KLIK" /> <div id="tu_pokaz_wiadomosc"></div>
przetworz.php<?php
//Zmienna wiadomosc pobiera wartość
$wiadomosc=$_POST['wiadomosc'];
// Sprawdzam czy istnieje "wiadomosc""
// Jeżeli nie, błąd
} else {
//W przeciwnym wypadku
echo'Twoja wiadomość to $wiadomosc'; }
?>
Wszystko byłoby ok, co prawda ajax działa, ale zamiast jakiegoś komunikatu z pliku
przetworz.php wyświetla mi pod spodem kod strony
test.html. Dlaczego tak sie dzieje?
Czy mogę zamiast
<!-- Po wciśnięciu obiektu (button KLIK) o id=wyswietl_alert i polu name=wyswietl_alert-->
$("#wyswietl_alert").click(function() {
<!-- Ewentualna treść -->
}
Zrobić tak
<!-- Po wciśnięciu obiektu (button KLIK) o id=wyswietl_alert i polu name=wyswietl_alert-->
$('input[name=wyswietl_alert]').click(function() {
<!-- Ewentualna treść -->
}
Czy to jest poprawnie? Dziękuję za wszelką pomoc i porady