Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML + PHP] Przycisk clear i ustawianie listy rozwijalnej
MySQL
post 23.05.2009, 20:26:39
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 4
Dołączył: 3.06.2008

Ostrzeżenie: (0%)
-----


Temat może mało mówi więc tłumaczę:
Mam formularz a w nim (w wielkim skrócie):
  1. <form class="rej" action="registration.php" method="post">
  2. <!-- ... -->
  3. <select id="fr_v" name="v_id">
  4. <option value="1">Wartość 1</option>
  5. <option value="2" selected="selected">Wartość 2</option>
  6. <option value="3">Wartość 3</option>
  7. </select>
  8. <!-- ... -->
  9. <input type="checkbox" name="fr_accept" id="fr_accept" value="1" onclick="this.form.elements['butSub'].disabled = !this.checked" />
  10. <label for="fr_accept">Zgadzam się na warunki rejestracji</label>
  11. <!-- ... -->
  12. <input class="botRes" type="reset" value="Wyczyść" />
  13. <input class="botSub" type="submit" name="butSub" disabled="disabled" value="Zarejestruj" />
  14. </form>


Całość jest w PHP. Jest to fragment formularza rejestracji. Zrobiłem go tak, że jeżlei użytkownik już wszystko wypełni ale zdaży się, że coś źle wypełni np. pole imie będzie mieć niedopuszczalne znaki, to po naciśnięciu przycisku "Zarejestruj" znowu otworzy się strona z formularzem ale te pola z wartościami, które były poprzednio dobrze wpisane zostaną uzupełnione automatycznie. W tym przykłądzie wybrano pozycję nr 2 z listy rozwijalnej. Zatem po próbie wysłania otworzył się znów formularz i domyślnie pozycja druga została dodatkowo opatrzona atrybutem selected="selected".

Teraz chciałbym, aby po naciśnięciu przycisku Wyczyść lista ustawiła się na pozycję pierwszą. Tego nie umiem zrobić (nie wiem czy jest to nawet wykonalne), gdyż po naciśnięciu przycisku "Wyczyść" pozycja ustawia się na tą, która jest opatrzona atrybutem selected. I to mnie w zasadzie nie dziwi bo tak działa właśnie przycisk z typem "reset".

---------------------------------------
A to jest moje rozwiązanie tej listy select w PHP (czyli tak jak wygląda obecnie u mnie w skrypcie):
  1. <select id="fr_v" name="v_id">
  2. <?php
  3.  $sql = 'SELECT v_id, v_rank
  4.    FROM rank';
  5.  $r = mysql_query($sql);
  6.  while($z = mysql_fetch_row($r))
  7.  {
  8.    echo '<option value="'.$z[0].'"';
  9.    if(isset($_POST['v_id']) && $_POST['v_id'] == $z[0])
  10.    {
  11.      echo ' selected="selected"';
  12.    }
  13.    echo '>'.$z[1].'</option>'."\n";
  14.  }
  15. ?>
  16. </select>


Ten post edytował MySQL 23.05.2009, 20:27:25


--------------------
Pozdrawiam serdecznie
Krzysiek
Go to the top of the page
+Quote Post
phpion
post 23.05.2009, 20:29:20
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




selectedIndex
Go to the top of the page
+Quote Post
MySQL
post 24.05.2009, 11:51:02
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 4
Dołączył: 3.06.2008

Ostrzeżenie: (0%)
-----


Dzięki. Ciekawa strona. Zrobiłem coś takiego:

  1. <!-- naglowek head -->
  2. <script type="text/javascript">
  3. function changeText()
  4. {
  5. var x=document.getElementById("mySelect");
  6. x.options[x.selectedIndex].text="Wart1";
  7. }
  8. <!-- sekcja body -->
  9. <select id="mySelect">
  10. <option value="1">Wart1</option>
  11. <option value="2">Wart2</option>
  12. <option value="3">Wart3</option>
  13. <option value="4">Wart4</option>
  14. <input type="button" onclick="changeText()" value="Reset">


I jest już prawie dobrze. Po naciśnięciu tekst pozycji aktualnej w liście ustawia się na taki jaki powinien byc ale nie przesuwa, podmienia on tekst pozycji. W ten sposób mogę tekst każdej pozycji w liście ustawić na jakiś konkretny. Chciałbym natomiast aby po naciśnięciu zaznaczenie przesunęło się na pozycję pierwszą na liście. Męczę się z tym i nie wiem jak to zrobić sad.gif


--------------------
Pozdrawiam serdecznie
Krzysiek
Go to the top of the page
+Quote Post
nospor
post 26.05.2009, 06:28:42
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie ma to jak nie doczytac i przekombinowac.
Cytat ze strony, którą tak zachwalasz
Cytat
The selectedIndex property sets or returns the index of the selected option in a dropdown list.


Kod
function changeText()
{
document.getElementById("mySelect").selectedIndex = 0;
}

Juz czaisz blad ? smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
MySQL
post 26.05.2009, 10:29:47
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 4
Dołączył: 3.06.2008

Ostrzeżenie: (0%)
-----


Tak, czaje czaje winksmiley.jpg Ja po prostu jeszcze ani razu JavaScript nie używałem. Nie wiem nawet jaka jest składnia tego języka.

Wielkie dzięki wam obojgu smile.gif


--------------------
Pozdrawiam serdecznie
Krzysiek
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.06.2025 - 08:32