Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] formularze i bledne przekazywanie
Forum PHP.pl > Forum > PHP
JarekG
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 :
  1. <?php
  2. echo ("<meta http-equiv=\"Refresh\" content=\"4;url=skrypt.php?arg1={$_GET['arg1']}&arg2={$_GET['arg2']}\">");
  3. ?>

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 smile.gif - i wtedy dziala), ale nie chodzi o to. Testuje sobie pewne sprawy i bawie sie troche, wiec chcialbym sie dowiedziec w czym lezy problem....

Dziekuje za pomoc.
Pozdrawiam
JG
PawelC
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.
JarekG
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.
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.