Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z $_GET
Forum PHP.pl > Forum > Przedszkole
Belze
witam!

rozwiazanie mojego problemu pewnie prozaiczne, aczkolwiek glowie sie nad tym juz poltorej godziny i nic ...

a wiec mam sobie stronke:

(panel.php?action=stopka)
Kod
<link rel="stylesheet" type="text/css" href="adminstyle.css"/>
<script type="text/javascript">
<!--
function zmienAction(f){
  f.action= f.opcja.value;
}
//-->
</script>
<? $baza = "panel.php?action=stopka&jezyk="; ?>
<table width="100%">
<tr>
<td align="left" height="50">
&nbsp;Edytujesz właśnie: <strong>Strona Główna</strong><br />
&nbsp;Wybrany edytowany język: <strong><?  if ($_GET['jezyk']== "") { print("polski"); } else { print($_GET['jezyk']); } ?> </strong><br /><br />
<form name="zmien" action="panel.php?action=stopka&jezyk=polski" method="post" onsubmit="zmienAction(this)">
&nbsp;Wybierz język edycji: &nbsp;<select name="opcja">
    <option <? if ($_GET['jezyk'] == "polski") { print("selected");}?>  value="<? print($baza); ?>polski">Polski</option>
    <option <? if ($_GET['jezyk'] == "angielski") { print("selected");}?> value="<? print($baza); ?>angielski">Angielski</option>
    <option <? if ($_GET['jezyk'] == "portugalski") { print("selected");}?> value="<? print($baza); ?>portugalski">Portugalski</option>
  </select>&nbsp;
    <input type="submit" value="Zmień" name="send">
</form>
</td>
</tr>
<tr>
<td align="center"> dol</td>
</tr>
</table>
</div>


niektore rozwiazania prymitywnie zrobione, ale nie o to chodzi...

po kliknieciu submit faktycznie zmienia mi url na wlasciwy (w zaleznosci ktory wybiore wariant jezykowy).. lecz pod $_GET['jezyk'] nie ma nic.. w sensie przy probie odczytu nic nie wychodzi...

moze to przez ta godzine przestalem myslec, ale nie widze problemu ;/

prosze o pomoc smile.gif

ps. z gory mowie: szukalem i nie znalazlem problemu..
erix
Kod
method="post"
Belze
w przypadku method="get" tymbardziej nie dziala. adres jest zupelnie nieprawidlowy..

zreszta.. czy post/get, to nie o to chodzi w przypadku method="post" adres jest prawidlowy. strona sie wyswietla..

lecz z adresu: panel.php?action=stopka&jezyk=polski

nie moge wyciagnac metoda $_GET['jezyk'] niczego!
Amorph
Masz formularz, w nim opcje, wysyłasz z formularza metodą post.
Teraz przesłane dane powinieneś odbierać metodą $_POST.
Belze
tak ale jak, jak w poszczegolnym "value" selecta mam adres strony..
tylko w taki sposob rozwiazalem problem wyboru jezyka poprzez select. ma ktos inny pomysl?

zreszta co za roznica, jesli adres wyswietla sie poprawnie? nawet nie musze uzywac form - i tak powinien dac sie odczytac za pomoca $_GET, czyz nie?
myth
Przeciez wszystko dziala..?
  1. <?php
  2. echo '$_GET["jezyk"] = '. $_GET['jezyk'].'<br />';
  3. echo '<pre>';
  4. print_r($_GET);
  5. echo '</pre>';
  6. ?>

Pokazuje prawidlowa wartosc.
Belze
faktycznie mowie glupoty. moglbym przerobic ten formularz na odbieranie $_POST, ale zalezy mi na $_GET ...

@myth...
a mi sie wyswietla
Kod
Array
(
)
Amorph
Zmieniasz adres strony na wybrany a potem submitujesz na taki adres:

action="panel.php?action=stopka&jezyk=polski"

Wiec jak ma działać poprawnie?
Moim skromnym zdaniem to tu sporo namieszałeś...

Ja bym widział to tak:

action="panel.php?action=stopka"
w value zostawil tylko polski, angielski, portugalski...a na poczatki skryptu:
$zmienna=$_POST['jezyk'];

Chyba ze:
select name='opcja', a moze przypadkiem zmien na 'jezyk' questionmark.gifquestionmark.gif
bastek8989
dlazcego masz method="post" a odbierasz $_GET['jezyk'] ?
daj $_POST['jezyk']
Belze
@Amorph .. ano namieszalem.

1. niewazne co wpisze w bazowe "action"... wpisalem "dupamaryna" .. i tak dla niego wazne jest to co jest w "value" ... usunalem "$baza" i zostawilem tylko polski.. angielski.. portugalski .... po wyslaniu probuje wejsc odpowiednio do pliku "polski", "portugalski" etc...

to nie tutaj lezy problem. wszystko teoretycznie jest dobrze. wybieram, wysylam, zmienia mi adres (na wlasciwy).. ale próbując wtedy wyciągnąć $_GET['jezyk'] nic mi nie zwraca, mimo ze w adresie jest np. ?action=stopka&jezyk=polski

@bastek8989 - $_POST['jezyk'] nie zwrociloby mi nic, bo nic nie jest tym nazwane.

echh... tak proste a tyle z tym problemow.

jesli ktos mialby pomysl, to prosze o pomoc.. potrzebuje jedynie - metody $_GET i wyboru jezyka poprzez select...

hmm dziwne..
zrobilem test

Kod
<? if ($_GET["action"] == "stopka") { print("test"); } else { print("blad"); }?>


i wyswietla mi blad...

zaczalem podejrzewac, ze to przez cos innego..

w panel.php sa linki. jeden link to wlasnie "stopka" ... klikajac na ten link uruchamia panel.php z parametrem stopka - i wtedy po prawej stronie od menu uruchamia sie strona stopka.php ... i w niej jakos nie chce uzyc niewazne na jakim parametrze metody $_GET .... moze to ma zwiazek?
Amorph
Nie wiem w sumie po co ci taki bałagan ale zerknij na to:
  1. <?php
  2. if($_GET['action']='stopka'){
  3. $jezyk=$_POST['jezyk'];
  4. echo "$jezyk";
  5. }
  6. ?>
  7. <form name="zmien" action="panel.php?action=stopka" method="post" >
  8. <select name="jezyk">
  9. <option value="polski">Polski</option>
  10. <option value="angielski">Angielski</option>
  11. <option value="portugalski">Portugalski</option>
  12. <input type="submit" value="Zmień" name="send"></form>

P.
Belze
1. chcialbym to zrobic z metoda $_GET a nie $_POST ale w sumie niewazne bo:
2. dopisalem w poprzednim poscie wiadomosc. zrobilem test. niewazne co zrobie, nawet bez "<form>"... nie wyswietla mi NIC gdy sprobuje wywolac "$_GET['stopka']" ..
Amorph
Ty chcesz nad morze jechać przez Zakopane.
Po kiego czorta komplikujesz sobie?
Aby "profesjonalnie" strona wyglądała z zapisanym adresikiem www.strona.com/plik.php?id=3uy7y3y2b5yb2c3uy52nc&plik=832498723&jezyk=hebrajsko-chinski.
Naprawdę czasami najłatwiejsze rozwiązania są najlepsze. To jeden z tych przypadków.
Belze
nie o to mi chodzi, zeby to "profesjonalnie" wygladalo.. to panel admina, z ktorego oprocz mnie bedzie korzystala garstka osob... zalezy mi na $_GET dla wygody zeby latwo dostac sie do kazdej wybranej lokacji..

w kazym badz razie dzieki za pomoc Amorph...

ok... kombinowalem jak sie da i dziwacznym sposobem udalo mi sie cos uzykac, ale jest jednem malutki problem:

Kod
<form action="" method="get">
  <select name="action=stopka&jezyk">    
  <option value="polski">Polski</option>
  <option value=">angielski">Angielski</option>
  <option value=">portugalski">Portugalski</option>
<input type="submit" value="Zmień"></form>

wszystko dziala bardzo fajnie. ale w adresie "=" i "&" nie sa wyswietlane..
np. ?action%3Dstopka%26jezyk=polski

jak temu zaradzic?

problem rozwiazany w dosc dziwny sposob...

mianowicie w panel.php w miejscu gdzie wyswietlaja sie strony dokonalem pewnej zmiany:

zamienilem:
Kod
else  if( ($_GET['action'] == "stopka") ) {
include("stopka.php");
}


na
Kod
else  if( ($_GET['action'] == "stopka") ) {
if( ($_GET['jezyk'] == "polski") or ($_GET['jezyk'] == "portugalski") or ($_GET['jezyk'] == "angielski")) {
include($patchqa."stopka.php?action=".$_GET['action']."&jezyk=".$_GET['jezyk']); } else {include($patchqa."stopka.php");}}


czyli w tym byl problem...

o dziwo mimo "stopka.php?action=...." w adresie wyswietla "panel.php?action=..."

czyli NIC sie nie zmienilo tylko to, ze w koncu widzi to $_GET

w kazdym badz razie dzieki za pomoc!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.