![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 21.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam taki maly problem z formularzami w php oraz w przekazywaniu zmiennych przy uzyciu metody GET. Mianowicie. Strona ma konstrukcje dwustronna (ramki). Po lewej stronie znajduje sie menu, a po prawej zawartosc. Mam formularz ktory sklada sie z inputa text i listy. Sluzy on do czegos w rodzaju recznego generowania identyfikatora. W pierwszym polu wpisuje sie jakas unikalna nazwe a w drugim polu wybiera sie z listy mozliwe opcje. Formularz odwoluje sie do osobnego pliku, ktory odpowiednio generuje sobie ten identyfikator i zwraca (powinien) w GET odpowiednie parametry. Problem polega na tym, ze w momencie kiedy wyswietlam strone w ramce i w pisze np. w pole tekstowe polskie znaki to pojawia sie problem, bo ich nie wyswietla, a zamiast 'ł' robi 'b'. Druga sprawa jest taka, ze w momencie kiedy wybierze sie z pola opcji cos w stylu "Unikalna nazwa & cos tam" to ucina ja do momentu '&' (zapewne dlatego ze jest to 'znak specjalny' rozpoznawany na swoj sposob w php). Nie jest to raczej wina kodowania, bo mam kilka takich formularzy i tylko ten konkretnie nie dziala. Malo tego, reszta jest zrobiona metoda kopiuj/wklej/wytnij to co niepotrzebne z tego pierwszego i jest ok. Konstrukcja dokumentow jest tez identyczna. Najwieksze jajo jest z tym, ze w momencie kiedy sobie otworze ramke w osobnym oknie, to prawie wszystko dziala. Prawie... tzn. przyjmuje polskie znaki ale konwertuje je na 'bezogonkowe' a pola ze znakami specjalnymi z <options> ucina. W momencie pierwszego przekazania zmiennych w GET z formularza do skryptu generujacego identyfikator jest wszystko ok (wpisalem sobie pomocniczo print $GET_['costam']; i pokazuje to dobrze. W momencie kiedy ma ponizej wpisane :
i wraca do pliku pierwotnego, tworzy sie jakies badziewie i ucina to co napisalem lub rekonwertuje. Plik do generowania identyfikatora nie ma nic innego za zadanie niz tylko przeczytac dane z formularza, wstawic je w adres i wrocic z tymi zmiennymi spowrotem, zeby instrukcja if wiedziala, ze sa ustawione. Wiem ze mozna to zrobic w mniej skomplikowany sposob (chociazby w form action wpisac skrypt.php ![]() Dziekuje za pomoc. Pozdrawiam JG Ten post edytował JarekG 4.10.2007, 15:24:49 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
A dlaczego przekazujesz zmienne metodą GET, a nie POST?? Hmm bład który Ci wyświetla źle znaki może być dlatego że powiedzmy plik formularz.php i np. wykonaj.php mogę mieć inne kodowanie lub niemają zdefiniowanego.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 21.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Hmm.. kodowanie maja okreslone to samo.
Dlaczego przekazuje GET-em. Bo jest mi wygodniej. Formularz w calosci posiada pola do wypelnienia, ktore sa w zaleznosci od identyfikatora przechowywane w bazie. Po dodaniu rekordu do bazy, formularz sie przeladowywuje i pokazuje to co zostalo juz dopisane. Jesli dodaje wiele rekordow, zmienna przechowywana w POST (ten wlasnie unikalny identyfikator) by mi zniknela. Dlatego przekazuje GET-em. Reszta formularza idzie w POST. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 16:56 |