Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML + PHP] Przycisk clear i ustawianie listy rozwijalnej
Forum PHP.pl > Forum > Przedszkole
MySQL
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>
phpion
selectedIndex
MySQL
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
nospor
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
MySQL
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
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.