$.get() - obróbka danych wprowadzonych przez użytkownika

Dział poświęcony JavaScriptowi - tworzeniu dynamicznym stron WWW.
neytiri
Bywalec
Bywalec
Posty: 33
Dołączył(a): piątek, 2 marca 2012, 01:10

$.get() - obróbka danych wprowadzonych przez użytkownika

Post przez neytiri »

Czy ktoś może mi pomóc zrozumieć mechanizm działania $.get() czy $.post()?

Chciałabym zrobić dynamiczne podpowiedzi w moim tpl. mam :

Code: Zaznacz cały

<input type=text name="tytul" id="tytul" value='{$tytul|default:""}' onkeyup="pokaz_dane();" style="width:150px;">
W js :

Code: Zaznacz cały

function pokaz_dane()
{
$.post("index.php",function(data){
alert(data);
});
}
po wprowadzeniu czegoś tam do input'a pokazuje mi prawie cały html strony - tu też pytanie dlaczego nie pokazuje całości, jest jakieś ograniczenie na ilość danych w tym okienku alert?

Wiem, że aby przeczytać dane wprowadzone przez użytkownika mogę zrobić coś takiego :

Code: Zaznacz cały

var tytul= $("input[name=tytul]").val(); alert (tytul);
Nie rozumiem, dlaczego jak próbuję odczytać dane w php, to nic jednak nie widzę :

Code: Zaznacz cały

function pokaz_dane()
{
$.post("index.php",{"cos":4 },function(data){
alert(data);
});
}
A w index.php :

Code: Zaznacz cały

echo $_POST['cos'];
Wyświetla mi pustą Array!
Robię pewnie jakiś podstawowy błąd, ale nie wiem gdzie.
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: $.get() - obróbka danych wprowadzonych przez użytkownika

Post przez Morfidon »

pod data znajduje się to co zwróci URL w tym wypadku index.php, tzn. w takim wypadku $_POST['tytul'] jest tam źle obsługiwane?
neytiri
Bywalec
Bywalec
Posty: 33
Dołączył(a): piątek, 2 marca 2012, 01:10

Re: $.get() - obróbka danych wprowadzonych przez użytkownika

Post przez neytiri »

W pliku index.php mam dokładnie :

Code: Zaznacz cały

echo $_POST['cos'];
,
bo rozumiem, że uzycie :

Code: Zaznacz cały

$.post("index.php",{"cos":4 },function(data){
alert(data);
});

wrzuca mi do tablicy $_POST['cos'] wartość 4?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: $.get() - obróbka danych wprowadzonych przez użytkownika

Post przez Morfidon »

Teoretycznie tak powinno być. A zamień post na get w pliku gdzie masz js oraz w pliku index.php. Następnie odpal index.php?cos=10 i powiedz czy wypisuje 10.
neytiri
Bywalec
Bywalec
Posty: 33
Dołączył(a): piątek, 2 marca 2012, 01:10

Re: $.get() - obróbka danych wprowadzonych przez użytkownika

Post przez neytiri »

Tak , wyświetla.
neytiri
Bywalec
Bywalec
Posty: 33
Dołączył(a): piątek, 2 marca 2012, 01:10

Re: $.get() - obróbka danych wprowadzonych przez użytkownika

Post przez neytiri »

A i jeszcze jak spróbowałam przesłać to url :

Code: Zaznacz cały

$.get("index.php?cos=10",function(data){
alert(data);
});
$_GET jest ciągle puste.
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: $.get() - obróbka danych wprowadzonych przez użytkownika

Post przez Morfidon »

$.get się przesyła tak samo jak $.post. Myślę, że wina leży po stronie tego, że nie zdąży odebrać odpowiedzi, a już próbuje ją wyświetlać. Spróbuj skorzystać z metody ogólniejszej tj. $.ajax i ustaw async na false.
neytiri
Bywalec
Bywalec
Posty: 33
Dołączył(a): piątek, 2 marca 2012, 01:10

Re: $.get() - obróbka danych wprowadzonych przez użytkownika

Post przez neytiri »

A czy można inaczej niż json'em przesyłać dane do php?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: $.get() - obróbka danych wprowadzonych przez użytkownika

Post przez Morfidon »

Nigdzie nie jest napisane, że ma być to Json.
neytiri
Bywalec
Bywalec
Posty: 33
Dołączył(a): piątek, 2 marca 2012, 01:10

Re: $.get() - obróbka danych wprowadzonych przez użytkownika

Post przez neytiri »

Ok, To możesz mi wytłumaczyć, jak w inny sposób odebrać dane z js?

Spróbuję to opisać jak ja to rozumiem, więc jak coś to proszę o poprawę :

User wpisuje na stronie jakieś dane np. do
<input type=text id=dane>

W js piszę funkcję do sczytanie tych danych - i tu też nie wiem pod co się podczepić, czy powinna to być funkcja anonimowa?
Czyli w js możemy dojść do tego tekstu :

var dane = $("input[name=dane]").val();

I potem za pomocą $.post , get lub ajax przesłać je do php.
Nie wiem czy dobrze rozumiem?
$.post(1,2,3)
1- podaje plik lub ścieżkę do pliku z którego ciągnę dane?
2- tu mogę przesłać dane do php - tylko jak jak odczytać w php? Gdzie one będą w tablicy $_POST?
3- funkcja do obslugi?

Nie wiem, czy to niezbyt zagmatwane, jak coś to napisz, które ewentualnie lekcje powinnam jeszcze przerobić z js lub jquery, aby to zakumać?
Post Reply