Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> przekazywanie elementow tablicy w urlu
Rafix24
post 17.03.2004, 03:55:06
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 13.03.2004

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


Witam
Wysylam za pomoca $_GET zmienna (tablice) ud[] z formularza a nastepnie chcialbym przekazac ta zmienna (i elementy tej tablicy) w urlu na inna strone.
Jak robie tak : szukaj.php?ud=$_GET['ud'] to po wejsciu w ten url mam : szukaj.php?ud=array i elementy z tablicy ud nie sa widoczne :?
Jak zrobic by to dzialalo questionmark.gif?


--------------------
Pozdrawiam,
Rafal
Go to the top of the page
+Quote Post
FiDO
post 17.03.2004, 04:22:07
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Radze przekazywac to za pomoca sesji, za pomoca URL'a od biedy sie da, ale to nie jest dobry pomysl.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
scanner
post 17.03.2004, 08:04:20
Post #3





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




[manual:8f9e94393a]serialize[/manual:8f9e94393a]
[manual:8f9e94393a]unserialize[/manual:8f9e94393a]


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
kszychu
post 17.03.2004, 11:01:35
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat
Witam
Wysylam za pomoca $_GET zmienna (tablice) ud[] z formularza a nastepnie chcialbym przekazac ta zmienna (i elementy tej tablicy) w urlu na inna strone.
Jak robie tak : szukaj.php?ud=$_GET['ud'] to po wejsciu w ten url mam : szukaj.php?ud=array i elementy z tablicy ud nie sa widoczne :?
Jak zrobic by to dzialalo questionmark.gif?

[php:1:c82d15d150]<?php
$link = "szukaj.php?";
for($i = 0, $max = count($_GET['ud']); $i < $max; $i++) {
$link .= "ud[]=".$_GET['ud'][$i];
$i == $max - 1 ? '' : $link .= "&";
}
echo $link;
?>[/php:1:c82d15d150]


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Rafix24
post 17.03.2004, 13:29:11
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 13.03.2004

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


Dziekuje za szybka odpowiedz smile.gif

Krzychu> Twoj kod nie dziala tzn. po przekazaniu w ten sposob ud[] na inna strone nie mozna pozniej korzystac z niej tak jak korzysta sie z tablicy html; poza tym przy echo zmiennej nie pokazuje nawet ze to tablica. sad.gif

Scanner> Probuje uzyc serialize() i unserialize() ale cos mi nie idzie...
Robie tak
[php:1:c1238b0d55]<?php
$tab=serialize($_GET['ud'];
echo"<a href='strona.php?ud=$tab>strona</a>";
?>[/php:1:c1238b0d55]
i ladnie mi to przekazuje w urlu w formacie : ud=a:2:{i:0;s:1:%222%22;i:1;s:1:%223%22;}
Chcialbym zeby ta zmienna wrocila, po przekazaniu w urlu, do wczesniejszej postaci czyli ud[] i robie tak :
[php:1:c1238b0d55]<?php
$ud1=unserialize($_GET['ud']);
echo $ud1;
?>[/php:1:c1238b0d55]
Niestety nie zamienia to na wczesniejszy format zmiennej i nie moge z tej zmiennej korzystac. Echo nie pokazuje nic.
Co robie zle questionmark.gif? smile.gif


--------------------
Pozdrawiam,
Rafal
Go to the top of the page
+Quote Post
kszychu
post 17.03.2004, 13:42:28
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Wydaje mi się, że wszystkie %22 musisz wcześniej zamienić na " a później unserialize. Jest taka funkcja rawurldecode().


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Rafix24
post 17.03.2004, 14:49:27
Post #7





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 13.03.2004

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


Niestety jeszcze nie dziala
Podam moze co mi pokazuje w echo po zastosowaniu kazdej funkcji:
[php:1:8b8263b9c6]<?php
echo"ud1 = ".$_GET['ud'].; // wyswietla ud1 = a:2:{i:0;s:1:"2";i:1;s:1:"3";}
$ud1= rawurldecode($_GET['ud']);
echo"ud1 = $ud1"; // wyswietla ud1 = a:2:{i:0;s:1:"2";i:1;s:1:"3";}
$ud1 = unserialize($ud1);
echo"ud1 = $ud1"; // wyswietla ud1 =
?>[/php:1:8b8263b9c6]


--------------------
Pozdrawiam,
Rafal
Go to the top of the page
+Quote Post
FiDO
post 17.03.2004, 15:14:41
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Bo najpierw musisz to zakodowac:

[php:1:c12a2f2ba6]<?php
$tab=rawurlencode(serialize($_GET['ud']));
echo"<a href='strona.php?ud=$tab>strona</a>";
?>[/php:1:c12a2f2ba6]
I dopiero przy odczycie to co robisz.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
Rafix24
post 17.03.2004, 15:24:12
Post #9





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 13.03.2004

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


Po zakodowaniu jest to samo...


--------------------
Pozdrawiam,
Rafal
Go to the top of the page
+Quote Post
noose
post 17.03.2004, 15:58:52
Post #10





Grupa: Zarejestrowani
Postów: 95
Pomógł: 0
Dołączył: 30.07.2003
Skąd: Gdynia

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


sprawdz tablice print_r (po unserialize) i bedziesz wiedzial, czy masz tablice czy co
Go to the top of the page
+Quote Post
Rafix24
post 17.03.2004, 17:18:41
Post #11





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 13.03.2004

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


Nie wyswietla mi print_r($ud) po unserlialize :!: :?:
Tak jakby w ogole tej zmiennej nie bylo. Tak jakby unserialize kasowal zmienna...


--------------------
Pozdrawiam,
Rafal
Go to the top of the page
+Quote Post
FiDO
post 17.03.2004, 18:01:25
Post #12





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Przeanalizuj to:
[php:1:dc5097c374]<?php
$arr = array(1,"2","3");

printf("<a href='?v=%s'>klik</a>", urlencode(serialize($arr)));

if (!empty($_GET['v']))
{
$a = unserialize(urldecode($_GET['v']));
var_dump($a);
}

>?[/php:1:dc5097c374]


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
Rafix24
post 17.03.2004, 20:58:20
Post #13





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 13.03.2004

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


W koncu dziala. Rozwiazalem to podobnie do propozycji krzycha.
Moze sie to komus kiedys przyda biggrin.gif
[php:1:2d3188cf7b]<?php
$link="szukaj.php";
if (!empty($_GET('ud')){
for ($i=0; $i < count($_GET['ud']); $i++)
{
$udo=$_GET['ud'][$i];
if ($i==0){
$link=."?ud[$i]=".$udo;
}else{
$link=."&ud[$i]=".$udo;
}
}// koniec for
}
?>[/php:1:2d3188cf7b]

Dziekuje za zainteresowanie


--------------------
Pozdrawiam,
Rafal
Go to the top of the page
+Quote Post
kszychu
post 18.03.2004, 10:09:06
Post #14





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Spoko, taka uwaga: pętlę for lepiej budować tak jak na moim przykładzie, gdzie tylko raz robisz count($tablica), zajmuje to mniej czasu, a przy dużych tablicah dochodzi to nawet do kilkudziesięciu procent czasu mniej. (thx Scanner)


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
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: 14.07.2025 - 23:33