Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][PHP]Przesłanie zmiennej JS za pomocą GET w linku
divril
post 17.04.2012, 19:25:51
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 30.10.2010

Ostrzeżenie: (0%)
-----


Witam

Od paru godzin przegladam watki an temat przesyłania danych pomiedzy JS a PHP i wiem juz, ze trzeba do tego uzywac AJAXA, gdyz oba jezyki wykonuja sie w rooznym "cyklu" ladownaia strony.

Przedstawie wpierw swoj problem:

Mam strone, na ktorej generuje X linkow <a> o id 1,2,3, itd itp. oraz parametrze name= $tabela (jest to drugi aprametr, wspolny dla wygenerowanych linkow, zalozmy ze $tabela='tabela' :

  1. for ($i=1; $i<=$il_stron; $i++) {
  2.  
  3. echo "<a id='".$i."' name='".$tabela."'>".$i."</a>&nbsp;&nbsp;"; //stworz linki do podstron
  4.  
  5. }


nastepnie w pliku js:

  1. $('a#1').click(function(){
  2. var type=$(this).attr('name');


pobieram sobie wartosc tego atrybutu i otrzymuje zmienna js type='tabela'. (kod js nie jest zakonczony, nie wklejalem calosci, ten fragment dziala)

CHcialbym teraz przekazac ta zmienna 'type' w adresie strony:

  1. $('div#pages').load( 'page.php?nr=1');


oprocz zmiennej 'nr' chcialbym tez aby page.php otrzymala do pobrania za pomoca metody GET ta wlasnie zmienna var type='tabela', nie wiem jak to zrobic, probowalem:

'page.php?nr=1&type='+type

Mam nadzieje ze dosc skladnie opisalem moj problem...
Go to the top of the page
+Quote Post
redeemer
post 17.04.2012, 19:41:59
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Zainstaluj narzędzie Firebug. W konsoli zobaczysz szczegóły ajaxowego requestu.

PS. Zamiast $('a#NUM').click() dodałbym atrybut class na znacznik a i złapał od razu wszystkie za pomocą $('.nazwaKlasy')


--------------------
Go to the top of the page
+Quote Post
divril
post 18.04.2012, 07:16:20
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 30.10.2010

Ostrzeżenie: (0%)
-----


No tak, ale jesli zlapie wszystkie zlapie na raz to wszystkie beda przekazywac mi ten sam nr storny.
Zobacze co to ten FireBug ale chodzi mi tu o uzyskanie odpowiedzi, czy wogole takie przekazanie w linku zmiennej z js jest mozliwe
Go to the top of the page
+Quote Post
mortus
post 18.04.2012, 08:04:31
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Najpierw formalności. Według specyfikacji (X)HTML wartość atrybutu id elementu HTML nie może rozpoczynać się cyfrą. A teraz przykład:
  1. <ul>
  2. <li><a href="#" id="page_1" name="tabela" class="link_to_page">Page 1</a></li>
  3. <li><a href="#" id="page_2" name="tabela" class="link_to_page">Page 2</a></li>
  4. <li><a href="#" id="page_3" name="tabela" class="link_to_page">Page 3</a></li>
  5. </ul>

[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function() {
  2. $('a.link_to_page').click(function() {
  3. var page_number = $(this).attr('id').substring(5, 6);
  4. var page_type = $(this).attr('name');
  5. var url = 'page.php';
  6. var get_data = 'nr=' + page_number + '&type=' + page_type;
  7. $.load(url, get_data, function(data) {
  8. // zmienna data zawiera odpowiedź serwera
  9. });
  10. });
  11. });
[JAVASCRIPT] pobierz, plaintext
Go to the top of the page
+Quote Post
divril
post 18.04.2012, 08:46:24
Post #5





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 30.10.2010

Ostrzeżenie: (0%)
-----


Ok, dzieki, teraz rozumiem o co chodzilo z klasami + dzieki za ustematyzowanie wiadomosci z nazwami id smile.gif

Tylko ze co ja dostane w tej funkcji 'odpowiedz serwera' ? ja musze na stronie 'page.php' pobrać ta daną:

$tabela=$_GET['tabela']

Jak tylko wroce do wlasnego laptopa to sprawdze skrypt, moze to bylo niepotrzebne i glupie pytanie i wystarczy juz odebrać na 'page.php' ta zmienna:)
Go to the top of the page
+Quote Post
mortus
post 18.04.2012, 10:22:56
Post #6





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Odpowiedzią serwera będze to, co wygeneruje skrypt page.php na podstawie ziennych z $_GET. To co w tej sytuacji zwróci skrypt page.php zależy od Ciebie, może to być np. cała strona (tyle, że wtedy mija się to z celem) albo dane pobrane z bazy i przetworzone na odpowiedni HTML, dane w formacie JSON, czy też XML. To Twoim zadaniem jest oprogramowanie tego. Normalnie odpowiedzią serwera będzie to, co pojawia się w przeglądarce po wpisaniu przykładowo takiego adresu:
http://moja.strona.pl/page.php?nr=1&type=tabela
Go to the top of the page
+Quote Post
divril
post 18.04.2012, 12:10:13
Post #7





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 30.10.2010

Ostrzeżenie: (0%)
-----


A to dokladnie o to mi chodzi:) Aby dokladnie taki link pojawil sie w przegaldarce:) Wielkie dzieki za pomoc, zaraz zabieram sie do testow:)

~mortus:

Wielkie dzięki, o taki dokładnie efekt mi chodziło:) rozumiem juz teraz o co chodziło w tej linijce

  1. $.load(url, get_data, function(data) {


Jeszcze raz dzieki!

Ten post edytował divril 18.04.2012, 13:41:17
Go to the top of the page
+Quote Post
mortus
post 18.04.2012, 14:19:27
Post #8





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Linię 3 z kodu JS, który wcześniej podałem musisz zamienić na:
[JAVASCRIPT] pobierz, plaintext
  1. var page_number = $(this).attr('id').substring(5);
[JAVASCRIPT] pobierz, plaintext

Inaczej skrypt będzie działał tylko dla 10 stron od 0-9. Chciałem to wyedytować wcześniej, ale wykrzaczyło mi tamtą odpowiedź.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 10.06.2025 - 22:42