Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP][AJAX]Problem przy przesyłaniu danych z formularza
Forum PHP.pl > Forum > Przedszkole
sebap123
Witam,

Mam problem ze skryptem JS który obsługuje AJAXa na mojej stronie.
Rzecz w tym, że najpierw próbowałem sam coś wymyślić. Ponieważ caly czas miałem jak się okazuje taki sam błąd jak teraz postanowiłem poszukać czegoś w internecie. Tak więc znalazłem parę gotowych skryptów. Pobrałem ten, ktory mi najbardzije pasował. Naniosłem na nim swoje poprawki i myślałem, że się uruchomi (poprawki nie były jakieś znaczące). Jednak nadal nic. Na stronie jednak na której to znalazłem, wszystko działa.
Byłbym wdzięczny, gdyby komuś zechciało się rzucić okiem na kod i powiedzieć, gdzie popełniam błąd.

Cala strona jest dostępna tutaj:
http://sebastianperyt/javascript/test.html

A tak wygląda plik test2.php:
  1. echo $_POST['napis'];
gorden
może spróbuj jakiegoś gotowego rozwiązania, jak jquery? w swoim js użyłeś 68 linijek. w jquery będzie to wyglądać tak:
[JAVASCRIPT] pobierz, plaintext
  1. $('#wyslij').click(function() {
  2. $.post('test2.php', {
  3. napis: $('#test').val()
  4. }, function(data) {
  5. $('#div1').text(data);
  6. });
  7. });
[JAVASCRIPT] pobierz, plaintext
sebap123
No nad jQuery myślałem i zgodnie z twoja propozycja dodałem do swojego projektu (jest pod linkiem http://sebastianperyt/javascript/testJQ.html), nie jestem tylko pewien czy dodałem poprawnie jako że, raczej jQuery nie używam, dlatego praktycznie go nie znam. Skrypt jednak "odmawia posłuszeństwa".

Jednak w tym wypadku tj. wysyłanie nagłówków między stronami bardziej opłaca mi się zrobić to na swoim pliku. Są dwa powody ku temu - rozmiar pliku, gdzie w moim przypadku jest to niemal 90:1 na korzyść mojego pliku, a także mój brak pewności co do tego, czy w dalszej części strony będę korzystał z tej biblioteki - wtedy rozmiar miałby mniejsze znaczenie.

Tak więc może ma ktoś jakiś pomysł co innego mogę poprawić w swoim pliku, lub jQuery, żeby działało jak działać powinno?
gorden
-usuń <form>, niepotrzebny. odświeża stronę niepotrzebnie
-<script> daj do head, pod src jquery
-i w końcu, linia 3 mojego kodu. zamień #test na #tekst. chodzi tutaj o id inputa z tekstem, mój błąd.
sebap123
1. Średnio rozumiem, poco to robić, skoro formularz służy do wysyłania danych, a ten skrypt tutaj ma weryfikować w locie czy wszystko jest ok? To jak i gdzie dodam action i method? - aktualnie usunąłem
2. Zrobione
3. To już zauważyłem na początku i było od początku poprawione - już tak ciemny w tej kwestii nie jestem. Po prostu nie jestem zbytnio zaznajomiony ze składnia jQuery.

Pomimo powyższych trzech punktów, skrypt nadal nie działa.
gorden
spróbuj przepisać skrypt jQuery od nowa, nie kopiując.

Cytat
To jak i gdzie dodam action i method?

http://api.jquery.com/jQuery.ajax/
http://api.jquery.com/jQuery.get/
http://api.jquery.com/jQuery.post/
sebap123
Coś mi wygląda, że błąd może leżeć w zupełnie innym miejscu, a mianowicie gdzieś na wysyłaniu samych danych. Teraz dałem prosty kod:
[JAVASCRIPT] pobierz, plaintext
  1. $("#wyslij").click(function(){
  2. $("#div1").text("napis");
  3. });
[JAVASCRIPT] pobierz, plaintext

który na mój rozum, oznacza że po naciśnięciu wyślij w divie o id div1 pojawi się napis napis. Jednak to nie działa. Chyba w jakiś sposób ten przycisk generuje błąd.

Czy może mi ktoś coś doradzić?
nospor
NIe: $("#div1").text("napis");
a: $("#div1").html("napis");
sebap123
Nadal nic. Między innymi tez dlatego nie używam jakoś jQuery. Niby proste, a jednak trudne. Może ktoś ma jakiś pomysł dot. pierwszej wersji skryptu, lub jak naprawić te nieszczęsne jQuery?
nospor
Bo to jest proste i banalne, tylko jak ktoś się za to zabiera bez poznania podstaw to nic dziwnego że nie działa.

ten kod:
$("#wyslij").click(function(){
$("#div1").html("napis");
});

Odpalasz, gdy jeszcze nie ma guzika $wyslij wiec nic dziwnego ze ci się zdarzenie do niego nie przypina, skoro nie ma do czego.
Doczytaj w dokumentaji jQuery jak należy pisać, by kod wykonywał się dopiero po załadowaniu strony, gdy wszytkie elementy już są. To jest pierwsze z podstawowych zagadnień jQuery opisane zaraz na początku.

http://docs.jquery.com/How_jQuery_Works
sebap123
Dobra, teraz już działa
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.