Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> przekazywanie elementow tablicy w urlu
Rafix24
post
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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
FiDO
post
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.
Go to the top of the page
+Quote Post
scanner
post
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]
Go to the top of the page
+Quote Post
kszychu
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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]
Go to the top of the page
+Quote Post
Rafix24
post
Post #5





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

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


Dziekuje za szybka odpowiedz (IMG:http://forum.php.pl/style_emoticons/default/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. (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
kszychu
post
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().
Go to the top of the page
+Quote Post
Rafix24
post
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]
Go to the top of the page
+Quote Post
FiDO
post
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.
Go to the top of the page
+Quote Post
Rafix24
post
Post #9





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

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


Po zakodowaniu jest to samo...
Go to the top of the page
+Quote Post
noose
post
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
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...
Go to the top of the page
+Quote Post
FiDO
post
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]
Go to the top of the page
+Quote Post
Rafix24
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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
Go to the top of the page
+Quote Post
kszychu
post
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)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 13:28