Artur C.

Artur C. .unknown

Temat: Nie poprawna pętla if - zapętliłem się

Mam taką pętlę, której zadaniem jest wyświetlanie liczy stron wyników wyszukiwań jeżeli takowe istnieją:

if($strona!=$stron)
{
$next=$strona+1;
$path.= '<a href="'.WWWROOT.'szukaj?'.$id_city.'/'.$next.'/">></a>';
}


Pętla ta generuje mi linka: http://www.domena.pl/szukaj?/47/2/ - czyli takiego pod którym wcale nie ma kontynuacji wyników wyszukiwań. Wyszukiwarka generuje link tego typu:

http://www.domena.pl/szukaj?miasto=47&dzielnica=0&woje...

Jeżeli ręcznie zmienię końcówkę z 1 na 2 itd - wówczas strona pokaże elegancko wyniki na kolejnej stronie.

Jak zrobić aby pętla generowała ten drugi link a dokładniej aby go kopiowała a zmieniała tylko końcówkę &strona=2, &strona=3 itd. - tak aby po kliknięciu pojawiała się faktycznie druga strona wyników wyszukiwań?Ten post został edytowany przez Autora dnia 06.06.13 o godzinie 15:44
Konrad Karpieszuk

Konrad Karpieszuk WordPress Plugin
Compatibility
Assurance for WPML

Temat: Nie poprawna pętla if - zapętliłem się

zakladam ze wiesz co masz w $strona i $stron i nie to jest problemem, a jedynie to jak jest tworzony url w $path



// to wstaw w functions.php
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}

// to twój zmodyfikowany kod

if($strona!=$stron)
{
$parsedUrl = parse_url(curPageURL());

parse_str($parsedUrl['query'], $args);

$args['strona']++;

$newQuery = http_build_query($args);

$newUrl = $parsedUrl['scheme'] . '://' . $parsedUrl['host'] . $parsedUrl['path'] . '?' . $newQuery;

$path.= '<a href="'.$newUrl.'">></a>';
}


dużo kodu, nie testowałem wiec nie wiem czy nie ma błędu :)Ten post został edytowany przez Autora dnia 06.06.13 o godzinie 18:32
Artur C.

Artur C. .unknown

Temat: Nie poprawna pętla if - zapętliłem się

Konrad K.:

dużo kodu, nie testowałem wiec nie wiem czy nie ma błędu :)

Kurde Konrad, działa elegancko :) Lekka modyfikacja i mam zmniejszanie strona strzałkami:

"Poprzednia strona | Następna strona"


{
if($strona=$stron)
{
$parsedUrl = parse_url(curPageURL());
parse_str($parsedUrl['query'], $args);

$args['strona']--;
$newQuery = http_build_query($args);
$newUrl = $parsedUrl['scheme'] . '://' . $parsedUrl['host'] . $parsedUrl['path'] . '?' . $newQuery;

$path.= '<a href="'.$newUrl.'">Poprzednia strona</a>';
}
}


A dodatkowo dodałem sobie pętle for, która pomiędzy linkami "następna strona" i "poprzednia strona" będzie pokazywała numery stron, które będą miały adekwatne linki do każdej z nich:


for($i=1;$i<=$stron;$i++)
{
$parsedUrl = parse_url(curPageURL());
parse_str($parsedUrl['query'], $args);
$args['strona'] = $i;
$newQuery = http_build_query($args);
$newUrl = $parsedUrl['scheme'] . '://' . $parsedUrl['host'] . $parsedUrl['path'] . '?' . $newQuery;
$path.= ' | <a href="'.$newUrl.'">'.$i.'</a> | ';
}


Nie wiem jednak dlaczego mając 3 strony z wynikami, które posiadają poprawne linki to w momencie kiedy klikam w drugi i trzeci - zmienia się link na poprawny jednak nie pozuje na drugiej stronie wyników drugiej strony tylko trzeciej. Pomimo innych a tym samych poprawnych linków:

http://localhost/szukaj?miasto=47&dzielnica=0&wojewodz...

http://localhost/szukaj?miasto=47&dzielnica=0&wojewodz...

kiedy dam pętle na mojej starej nie działającej zasadzie tj.:


for($i=1;$i<=$stron;$i++)
{
$path.= '<a href="'.WWWROOT.'szukaj?/'.$id_city.'/'.$i.'/">';

if($i==$strona){$path.= '<strong>'.$i.'</strong>';}
else {$path.= $i;}
$path.= '</a>|';
}


wówczas pod linkiem dla strony drugiej, jeżeli końcówkę zmienię ręcznie - działa i wyświetla poprawnie wyniki dla każdej ze strony z osoba. Gdzie się mogłem machnąć, że dla nowej pętli to nie działa?Ten post został edytowany przez Autora dnia 07.06.13 o godzinie 10:20
Paweł Knapek

Paweł Knapek freelancer, koder,
wordpressowiec

Temat: Nie poprawna pętla if - zapętliłem się

Nie przyglądałem się zbyt uważnie temu kodowi ...ale co mi się pierwsze rzuciło w oczy, to już na samym początku:
if($strona=$stron)

-a powinno być chyba
if($strona==$stron)
Artur C.

Artur C. .unknown

Temat: Nie poprawna pętla if - zapętliłem się

Paweł, no jasne, że tak :) Dzięki za czujne oko nie po raz pierwszy :P
Paweł K.:
Nie przyglądałem się zbyt uważnie temu kodowi ...ale co mi się pierwsze rzuciło w oczy, to już na samym początku:
if($strona=$stron)

-a powinno być chyba
if($strona==$stron)

Konrad dzięki jeszcze raz za kod wyjściowy - mega się przydał - Paweł dzięki za czujnośćbędziecie w Poznaniu dajcie znać! :)Ten post został edytowany przez Autora dnia 07.06.13 o godzinie 17:15
Ireneusz Adamczyk

Ireneusz Adamczyk Pomagamy Firmom
budować przewagę
konkurencyjną

Temat: Nie poprawna pętla if - zapętliłem się

Artur P.:
Paweł, no jasne, że tak :) Dzięki za czujne oko nie po raz pierwszy :P
Paweł K.:
Nie przyglądałem się zbyt uważnie temu kodowi ...ale co mi się pierwsze rzuciło w oczy, to już na samym początku:
if($strona=$stron)

-a powinno być chyba
if($strona==$stron)

Konrad dzięki jeszcze raz za kod wyjściowy - mega się przydał - będziesz w Poznaniu daj znać! :)

A Pawłowi za czujność się flaszka nie należy??? ;)
Artur C.

Artur C. .unknown

Temat: Nie poprawna pętla if - zapętliłem się

Jeszcze byłem w szoku wtedy ale na spokojnie dałem edita :D
Ireneusz A.:
Artur P.:
Paweł, no jasne, że tak :) Dzięki za czujne oko nie po raz pierwszy :P
Paweł K.:
Nie przyglądałem się zbyt uważnie temu kodowi ...ale co mi się pierwsze rzuciło w oczy, to już na samym początku:
if($strona=$stron)

-a powinno być chyba
if($strona==$stron)

Konrad dzięki jeszcze raz za kod wyjściowy - mega się przydał - będziesz w Poznaniu daj znać! :)

A Pawłowi za czujność się flaszka nie należy??? ;)

Następna dyskusja:

Problem z blogroll - nie wy...




Wyślij zaproszenie do