![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 11.01.2009 Ostrzeżenie: (0%)
|
Witam,
mam problem z obsługą onclick w liście rozwijanej czyli w tagu option. Zdaje sobie sprawę że jest troszkę takich postów, czytałam je i próbowałam wpleść rady do mojego kodu jednakże wszystko zawodzi. Nie wiem czy jest to winą php dodanego w tym tagu dlatego prosze was o wskazówki. To jest moja lista rozwijana: <select name="select_urgency"> <option onclick="$('#form_urgency').val('Low');$('#form').submit();" <?if(!empty($_POST['urgency']) && $_POST['urgency']=='low') echo 'SELECTED'?> />Low</option> <option onclick="$('#form_urgency').val('Medium');$('#form').submit();" <?if(!empty($_POST['urgency']) && $_POST['urgency']=='medium') echo 'SELECTED'?> />Medium</option> <option onclick="$('#form_urgency').val('High');$('#form').submit();" <?if(!empty($_POST['urgency']) && $_POST['urgency']=='high') echo 'SELECTED'?> />High</option> <option onclick="$('#form_urgency').val('Urgent');$('#form').submit();" <?if(!empty($_POST['urgency']) && $_POST['urgency']=='urgent') echo 'SELECTED'?> >Urgent</option> <option onclick="$('#form_urgency').val('All');$('#form').submit();" <?if(empty($_POST['urgency']) || $_POST['urgency']=='all') echo 'SELECTED'?> />All</option> </select> Może dodam jeszcze że oczywiście powyższe rozwiązanie działa pod FF. Zgóry dziękuje i Pozdrawiam Monika |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%)
|
Może spróbuj to obsłużyć przez zdarzenie "onchange" w tagu select.
Widzę, że od razu po kliknięciu na opcję wysyłasz (zatwierdzasz) formularz i z tego wynika moje pytanie: Czy musisz ustawiać wartość tego elementu formularza "$('#form_urgency').val('Low');" czy nie lepiej odrazu przesłać wybraną wartość tego selecta bez żadnych kombinacji z dodatkowymi polami? Ja to widzę mniej więcej tak: Kod <select id="moj_select" name="form_urgency" onchange="$('#form').submit();"> <option value="jakaś wartość">Jakiś opis</option> <!-- etc. --> </select> Możesz oczywiście zamiast tego 'onchange="$('#form').submit();"' powyżej wrzucić kod js do head dla przejrzystości: Kod $(document).ready(function(){ $('#moj_select').change(function(){ $('#form').submit(); }); }); Tu masz jeszcze link o select w jquery z przykładami. I to "echo 'SELECTED'" napisałbym tak: echo 'selected="selected"'. PS Javascript != Java |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 11.01.2009 Ostrzeżenie: (0%)
|
Po pierwsze dziękuje za odpowiedź (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Po drugie w 100% racja w tytule powinno być javascript. Po 3 niechcący nacisnęłam guzik: Pomogłem, czy jakoś tak. To jest mój pierwszy projekt z użyciem javascript i php i nie ukrywam mam pewne problemy z tym co napisałeś. Próbowałam zrobić to we wskazany przez Ciebie sposób aczkolwiek nic sie nie dzieje (nawet pod ff przestało mi działać) Poniżej zamieszczę kod może by ktoś mógł mi bardziej przybliżyć to wyjście
Kod <td> <select name="select_status"> <option onclick="$('#form_status').val('All');$('#form').submit(); <?if(empty($_POST['status']) || $_POST['status']=='All') echo 'SELECTED'?>" />All</option> <option onclick="$('#form_status').val('Open');$('#form').submit(); <?if(!empty($_POST['status']) && $_POST['status']=='Open') echo 'SELECTED'?>" />Open</option> <option onclick="$('#form_status').val('Closed');$('#form').submit(); <?if(!empty($_POST['status']) && $_POST['status']=='Closed') echo 'SELECTED'?>" />Closed</option> </select> </td> <input type="hidden" name="status" id="form_status" value="<? if(!empty($_POST['status'])) { echo $_POST['status']; } ?>" /> Kod $sql='SELECT * FROM Table'; $sql.=' WHERE 1=1 '; if(!empty($_POST['status'])) { if(in_array($_POST['status'], array('Open', 'Closed'))) { $sql.=' AND Status =\''.$_POST['status'].'\''; } } i guziczek czyszczący wszystkie opcje: Kod <img src="img/w.gif" style="cursor:pointer;" onclick="$('#form_status').val('');" /> Z góry dziękuje za pomoc i proszę o wyrozumiałość gdyż jak już napisałam raczkuje w tym temacie. |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%)
|
Hejka.
Nie wiem czy nadal chodzi o ten sam problem, ale zakładam że generujesz sobie dobry html (jak nie sprawdzałaś to to zrób (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) i php nie sypie ci błędami. Teraz pokażę ci o co mi chodzi co do tego selecta (taki poglądowy przykład, popatrz na komentarze w nim). Plik o nazwie test.php:
Przykład ten demonstruje użycie jquery do podpięcia zdarzenia onchange do wybranego selecta i wysłania formularza. Przesłana jest wybrana wartość tego selecta dostępna później (po przesłaniu) w $_POST['moj_select']. Zauważ że zdarzenie onchage zadziała gdy wartość pola select ulegnie zmianie. Ponieważ nie widzę potrzeby dodawania (po co jest to pole, skoro można tą wartość przesłać selectem?) "$('#form_status').val('All');", więc to pominąłem. Zauważ że to twoje dodatkowe pole wyświetla to samo co select, więc po co to dublować? Kod pisałem na szybkiego więc wybacz jeśli coś zakręciłem. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Pozdrawiam. Edit: Zamiast generowania listy (zrobiłem to przykładowo) ty możesz od razu wpisać:
bo masz tylko 3 opcje. Ten post edytował ziqzaq 18.01.2009, 18:49:18 |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 11.01.2009 Ostrzeżenie: (0%)
|
Bardzo dziękuje za pomoc, pomogło. Wielkie dzięki
|
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 06:35 |