-
1. Data: 2011-04-24 10:18:17
Temat: AJAX - wstep
Od: "Gabriel Zastawnik" <z...@p...fm>
Czesc!
Zaznaczam od razu, ze chyba pytanie jest banalne, ale nie umiem go po prostu
wygooglac. Nie znam slowa kluczowego, albo ich zestawu.
Do tej pory nie potrzebowalem korzystac z mechanizmow AJAX, a jesli juz to w
jakims ograniczonym zakresie.
Nurtuje mnie jeden temat, ale nie bardzo wiem, jak go wygooglac, stad licze na
pomoc grupy.
Powiedzmy ze mam jakas strone, gdzie uzytkownik wypelnia formularz. Przyjmijmy
ze to tylko 1 pole input IMIĘ.
Dane z formularza sa przesylane do strony wynik.php, ktora w zaleznosci od
podanego imienia wyswietla:
if $imie="gabrys" echo "czesc Gabryś";
else echo "witaj nieznajomy użytkowniku";
Oczywiscie kod php z pliku wynik.php w tradycyjnej technologii bez korzystania z
AJAX bedzie "obudowany" w znaczniki <html>, <body> itp. zeby tworzyl "kompletna
strone".
Jesli wysle je AJAXem, to do okreslonego kontenera na stronie pierwotnej
formularza wrzuce wynik.php bez koniecznosci przechodzenia "formalnego" to
wynik.php i jego wyswietlania.
Mozecie mi powiedziec czy da sie zrobic cos takiego, zeby do tego kontenera
wladowalo mi tylko hmm... to co jest tak jakby pomiedzy znacznikami
<body></body> albo nawet pomiedzy znacznikami <div id="content_wrapper"></div> a
nie caly wynik.php z jego naglowkami (czyli znacznikami meta, sekcja head,
ladowanie cssow itp) ??
Podejrzalem kilka przykladow na sieci, ale widze, ze budujac strone w oparciu o
nie musial bym zrobic plik wynik.php mniej wiecej o nastepujacej tresci:
<?php
include("baza_polacz.php");
$imie = $_POST['imie'];
if $imie="gabrys" echo "czesc Gabryś";
else echo "witaj nieznajomy użytkowniku";
// Perzeskok na strone formularza
?>
A co gdyby ktos nie mial wlaczonego js?? Wtedy by sie mu wyswietlila normalnie
strona wynik.php, ale cala "okrojona". Bez naglowkow. A taka kompatybilnosc
wstecz by sie przydala - zeby moc obudowac wynik.php w normalne znaczniki
html'owe.
Mam nadzieje ze jakos jasno opisalem swoje pytanie i ktos kto zna AJAX od razu
zalapie o co mi biega:)
Nie potrzebuje ryby - wystarczy wedka, ale nie znam slow kluczowych do
wyszukania w googlach. "ajax" jest zbyt ogolne:)
Zeby jeszcze troche bardziej zawezic temat: jedyny framework js, z ktorego
korzystam to jquery, wiec gdyby ktos mogl rzucic linkiem wlasnie do niego.
--
Gabriel Zastawnik
http://www.sigsoft.pl
-
2. Data: 2011-04-24 14:37:08
Temat: Re: AJAX - wstep
Od: Paweł Piskorz <n...@p...nie?>
On 2011-04-24 12:18, Gabriel Zastawnik wrote:
> Mozecie mi powiedziec czy da sie zrobic cos takiego, zeby do tego
> kontenera wladowalo mi tylko hmm... to co jest tak jakby pomiedzy
> znacznikami <body></body> albo nawet pomiedzy znacznikami <div
> id="content_wrapper"></div> a nie caly wynik.php z jego naglowkami
> (czyli znacznikami meta, sekcja head, ladowanie cssow itp) ??
Hm, obrobić kod zanim go wkleisz? Zobacz ostatni przykład, dokładnie co
się dzieje w ostatniej funkcji:
http://api.jquery.com/jQuery.post/
> Podejrzalem kilka przykladow na sieci, ale widze, ze budujac strone w
> oparciu o nie musial bym zrobic plik wynik.php mniej wiecej o
> nastepujacej tresci:
> <?php
> include("baza_polacz.php");
> $imie = $_POST['imie'];
>
> if $imie="gabrys" echo "czesc Gabryś";
> else echo "witaj nieznajomy użytkowniku";
> // Perzeskok na strone formularza
> ?>
>
> A co gdyby ktos nie mial wlaczonego js?? Wtedy by sie mu wyswietlila
> normalnie strona wynik.php, ale cala "okrojona". Bez naglowkow. A taka
> kompatybilnosc wstecz by sie przydala - zeby moc obudowac wynik.php w
> normalne znaczniki html'owe.
jQuery dodaje nagłówek x-requested-with: XMLHttpRequest, po tym możesz
rozpoznać czy wysyłać okrojony szablon dla wersji z JavaScriptem, czy
pełny dla wersji bez JS.
--
message[autor="PablO"]::after {
content:"Pozdrawiam";
}
-
3. Data: 2011-04-24 16:15:51
Temat: Re: AJAX - wstep
Od: "Gabriel Zastawnik" <z...@p...fm>
Użytkownik "Paweł Piskorz" <n...@p...nie?> napisał w wiadomości
news:ip1cil$mku$1@inews.gazeta.pl...
> Hm, obrobić kod zanim go wkleisz? Zobacz ostatni przykład, dokładnie co się
> dzieje w ostatniej funkcji:
> http://api.jquery.com/jQuery.post/
Bardzo dobry przyklad z tego co widze. Chyba o to chodzilo. Pisze "chyba", bo
nie mialem jeszcze czasu sie w to wglebic.
XMLHttpRequest - to jest magiczne slowko, ktore w moim przypadku nalezalo wpisac
do google:))
> jQuery dodaje nagłówek x-requested-with: XMLHttpRequest, po tym możesz
> rozpoznać czy wysyłać okrojony szablon dla wersji z JavaScriptem, czy pełny
> dla wersji bez JS.
Tzn? Chyba nie masz na mysli, zeby przygotowywac dwie wersje pliku obrabiajacego
wynik z danego formularza.
Mnie chodzilo o to, co jest pokazane w tym ostatnim przykladzie, czyli:
function( data ) {
var content = $( data ).find( '#content' );
$( "#result" ).html( content );
}
Czyli odczytaj wynik zwracany przez plik docelowy formularza, zaladuj go, znajdz
sekcje <div id="content"> a pozniej wklej ją na bieżącą strone do <div
id="result">
:))) <-- ten usmiech oznacza banana na buzce, bo chyba zalapalem o co biega i ze
to, o czym do tej pory jedynie myslalem, mozna jednak zrobic:)
--
Gabriel Zastawnik
http://www.sigsoft.pl
-
4. Data: 2011-04-24 17:16:20
Temat: Re: AJAX - wstep
Od: Paweł Piskorz <n...@p...nie?>
On 2011-04-24 18:15, Gabriel Zastawnik wrote:
> Użytkownik "Paweł Piskorz" <n...@p...nie?> napisał w
> wiadomości news:ip1cil$mku$1@inews.gazeta.pl...
>> jQuery dodaje nagłówek x-requested-with: XMLHttpRequest, po tym możesz
>> rozpoznać czy wysyłać okrojony szablon dla wersji z JavaScriptem, czy
>> pełny dla wersji bez JS.
>
> Tzn? Chyba nie masz na mysli, zeby przygotowywac dwie wersje pliku
> obrabiajacego wynik z danego formularza.
Zależy jak masz zorganizowane szablony, np. to może być warunek w samym
szablonie:
{if !$ajax}
nagłówek, tj. <html><head/><body>to co jest przed formularzem
{/if}
zawartość konkretnej strony
{if !$ajax}
stopka, czyli to co za formularzem, stopka strony, </body></html>
{/if}
> :))) <-- ten usmiech oznacza banana na buzce,
A ja myślałem, że za dużo jajek zjadłeś ;)
--
message[autor="PablO"]::after {
content:"Pozdrawiam";
}
-
5. Data: 2011-04-25 07:45:14
Temat: Re: AJAX - wstep
Od: "Gabriel Zastawnik" <z...@p...fm>
Użytkownik "Paweł Piskorz" <n...@p...nie?> napisał w wiadomości
news:ip1lt5$qdh$1@inews.gazeta.pl...
> Zależy jak masz zorganizowane szablony, np. to może być warunek w samym
> szablonie:
> {if !$ajax}
> nagłówek, tj. <html><head/><body>to co jest przed formularzem
> {/if}
> zawartość konkretnej strony
> {if !$ajax}
> stopka, czyli to co za formularzem, stopka strony, </body></html>
> {/if}
A to ma Pawle wogole sens?
Uzycie AJAX jest scisle uzaleznione od obslugi js. Wiec moga wystepowac tylko
dwie sytuacje:
1. przegladarka uzytkownika obsluguje AJAX - wtedy zgodnie z tym ostatnim
przykladem na stronie jquery moge wyslac pliki z formularza do wynik.php, pobrac
caly wynik.php i "wykroic" sobie odpowiednią czesc (na przyklad zawarta miedzy
<div id="costam">). I to wykrojenie realizuje samym javascriptem, a nie
uzalezniam serwowanego wyniku od wysylanych naglowkow i nie analizuje ich w
wynik.php
2. przegladarka nie obsluguje AJAX - wtedy wyslanie danych z formularza
poczatkowego spowoduje wyslanie calej wynik.php i nikt sie zadnym javascriptem
nie bedzie przejmowal:)
Dobrze kombinuje? Czy gdzies jest blad w mysleniu albo czegos nie uwzglednilem?
Jedyne, co mi przychodzi na mysl, to nadmiarowe generowanie calej strony
wynik.php w celu jej pozniejszego okrojenia. Ale z drugiej strony to chyba maly
koszt jak na mozliwosc zastosowania "zgodnego wstecz" rozwiazania.
--
Gabriel Zastawnik
http://www.sigsoft.pl
-
6. Data: 2011-04-25 11:39:28
Temat: Re: AJAX - wstep
Od: Paweł Piskorz <n...@p...nie?>
On 2011-04-25 09:45, Gabriel Zastawnik wrote:
> Użytkownik "Paweł Piskorz" <n...@p...nie?> napisał w
> wiadomości news:ip1lt5$qdh$1@inews.gazeta.pl...
>
>> Zależy jak masz zorganizowane szablony, np. to może być warunek w
>> samym szablonie:
>> {if !$ajax}
>> nagłówek, tj. <html><head/><body>to co jest przed formularzem
>> {/if}
>> zawartość konkretnej strony
>> {if !$ajax}
>> stopka, czyli to co za formularzem, stopka strony, </body></html>
>> {/if}
>
> A to ma Pawle wogole sens?
[8<]
>
> Dobrze kombinuje?
MZ dobrze.
> Jedyne, co mi przychodzi na mysl, to nadmiarowe generowanie calej strony
> wynik.php w celu jej pozniejszego okrojenia. Ale z drugiej strony to
> chyba maly koszt jak na mozliwosc zastosowania "zgodnego wstecz"
> rozwiazania.
Na niektórych stronach to może być opłacalne.
--
message[autor="PablO"]::after {
content:"Pozdrawiam";
}
-
7. Data: 2011-04-26 20:22:50
Temat: Re: AJAX - wstep
Od: beherit / pn <b...@g...com>
W dniu 2011-04-24 12:18, Gabriel Zastawnik pisze:
> Czesc!
>
> Zaznaczam od razu, ze chyba pytanie jest banalne, ale nie umiem go po
> prostu wygooglac. Nie znam slowa kluczowego, albo ich zestawu.
... jeśli dobrze zrozumiałem w połączeniu z jquery jest to:
$(obiekt_do_ktorego_zaladujesz).load('nazwa_pliku.ph
p
element_ktory_pobierasz');
Dokładniej w moim poście dalej - o przeźroczystości.
Pozdr,p.
-
8. Data: 2011-04-26 20:45:10
Temat: Re: AJAX - wstep
Od: Zbigniew Malec <a...@i...invalid>
On Sun, 24 Apr 2011 12:18:17 +0200, Gabriel Zastawnik wrote:
> Powiedzmy ze mam jakas strone, gdzie uzytkownik wypelnia formularz. Przyjmijmy
> ze to tylko 1 pole input IMIĘ.
> Dane z formularza sa przesylane do strony wynik.php, ktora w zaleznosci od
A mi się wydaje, że tutaj wszystko rozbija się o szablony. Nie wiem jak to
się robi w PHP (bo nie używałem właściwie nigdy na większą skalę), ale
jakbyś miał dobry podział na elementy stałe i zmienne, to byś nie musiał
wyłuskiwać z htmla interesującej ciebie zawartości. Miałbyś oddzielny
element z zmienny (tutaj imię) w postaci wydzielonego pliku i jakbyś
potrzebował wersji nie ajax, to odwoływałbyś się po prostu do elementu
dynamicznego otoczonego elementami stałymi (szablonem), a jakbyś
potrzebował elementu zmiennego do ajax-a, to byś wołał sam element zmienny,
bez szablonu.
Tak ogólnie to warto spojrzeć na szablonowanie w Ruby on Rails, na prawdę
świetne rozwiązanie.
Co do metod podanych przez kolegów, to można je też rozwinąć i nadać
elementowi zmiennemu jakieś id i po tym id go z dokumentu z htmlem
wyjmować. Tak jest chyba najbardziej wprost.
--
Pozdrawiam
Zbyszek Malec
-
9. Data: 2011-04-27 04:36:36
Temat: Re: AJAX - wstep
Od: "Gabriel Zastawnik" <z...@p...fm>
Użytkownik "beherit / pn" <b...@g...com> napisał w
wiadomości news:ip79is$ofp$2@inews.gazeta.pl...
> $(obiekt_do_ktorego_zaladujesz).load('nazwa_pliku.ph
p
> element_ktory_pobierasz');
Dzieki! :)
--
Gabriel Zastawnik
http://www.sigsoft.pl
-
10. Data: 2011-04-27 04:39:47
Temat: Re: AJAX - wstep
Od: "Gabriel Zastawnik" <z...@p...fm>
Użytkownik "Zbigniew Malec" <a...@i...invalid> napisał w wiadomości
news:1q3kaypgefznu$.zzy29d2tr2wa$.dlg@40tude.net...
> A mi się wydaje, że tutaj wszystko rozbija się o szablony. Nie wiem jak to
> się robi w PHP (bo nie używałem właściwie nigdy na większą skalę), ale
> jakbyś miał dobry podział na elementy stałe i zmienne, to byś nie musiał
> wyłuskiwać z htmla interesującej ciebie zawartości. Miałbyś oddzielny
> element z zmienny (tutaj imię) w postaci wydzielonego pliku i jakbyś
> potrzebował wersji nie ajax, to odwoływałbyś się po prostu do elementu
> dynamicznego otoczonego elementami stałymi (szablonem), a jakbyś
> potrzebował elementu zmiennego do ajax-a, to byś wołał sam element zmienny,
> bez szablonu.
Hmm... ale mnie najogolniej mowiac chodzilo o zasade "zgodnosci wstecz".
To znaczy ze jesli uzytkownik ma wlaczony js, to zeby korzystal z ajax, a jesli
ma wylaczony, to zeby strony tez chodzily, tylko z tradycyjnym "przechodzeniem"
pomiedzy nimi, czyli z przeladowaniem.
> Co do metod podanych przez kolegów, to można je też rozwinąć i nadać
> elementowi zmiennemu jakieś id i po tym id go z dokumentu z htmlem
> wyjmować. Tak jest chyba najbardziej wprost.
No wlasnie o to w moim pytaniu chodzilo:) Czy sie da.
Pawel i beherit / pn utrafili w 10 ze swoimi odpowiedziami. Ich metody
pozwalaja na taką właśnie degradowalność zgodną wstecz.
--
Gabriel Zastawnik
http://www.sigsoft.pl