Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Prosta funkcja
Forum PHP.pl > Forum > Przedszkole
Mackos
Witajcie, jako że JS u mnie całkowicie leży, mam drobne pytanie.
Aktualnie mam funkcję, która mi wypisuje godziny:
  1. <script type="text/javascript">
  2. function Godzina() {
  3. var godzina = document.getElementById('godzina');
  4. var wartgodz = document.getElementById('wartgodz');
  5. switch (godzina.value) {
  6. case '0' : wartgodz.innerHTML = 'Od godziny: <select name="godzina"><option value=\"$go:00\">$go:00</option><option value=\"$go:30\">$go:30</option></select><br>Do: <select name="godzina2"></option>"; ><option value=\"$go:00\">$go:00</option><option value=\"$go:30\">$go:30</option></select>'; break; // tutaj ładne wypisywanie godzin (wywaliłem stąd PHP żeby było czytelnie)
  7. case 'wyb' : wartgodz.innerHTML = ''; break;
  8. default : wartgodz.innerHTML = 'wartgodz.innerHTML = 'Od godziny: <select name="godzina"><option value=\"$go:00\">$go:00</option><option value=\"$go:30\">$go:30</option></select><br>Do: <select name="godzina2"></option>"; ><option value=\"$go:00\">$go:00</option><option value=\"$go:30\">$go:30</option></select>'; break;'; break; //stad też wywaliłem php
  9. }
  10. }

I sprawa ma się tak, chciałbym żeby w zależności od parametru <select name="godzina"> pokazywało wartości w parametrze godzina2 przesunięte o 3 godziny.
Wie ktoś może jak to poczynić ?
kamil4u
Nie wiem dokładnie co chcesz zrobić smile.gif, ale z tego co zrozumiałem potrzebujesz czegoś takiego:
Kod
<select id="g1">
<option value="1">01.00</option>
<option value="2">02.00</option>
<option value="3">03.00</option>
<option value="4">04.00</option>
<option value="5">05.00</option>
<option value="6">06.00</option>
</select><br>
<select id="g2">
<option value="1">04.00</option>
<option value="2">05.00</option>
<option value="3">06.00</option>
<option value="4">07.00</option>
<option value="5">09.00</option>
<option value="6">09.00</option>
</select>

<script type="text/javascript">
document.getElementById('g1').onchange = function(){
  document.getElementById('g2').value = this.value;
}
</script>


Nie pamiętam tylko, czy zrobienie tego za pomocą element.value = wartosc; jest poprawne... w razie czego szukaj pod hasłem: selectedIndex

I jakby nie chodziło o to(całościowo jako kod) to opisz dokładniej problem.
Mackos
No prawie, tylko że ten drugi "select" musi być generowany dynamicznie wraz z kliknięciem przez użytkownika danej godziny w godzina 1 musi pokazywać godzine dwa od (wybrana wartość w godzina)+3 do ustalonego przeze mnie X. I trzeba to wpleść jakoś w ten case, ponieważ mam jeszcze warunek ustalony dla różnych dni.
kamil4u
Kod
od
<select id="g1">
<option value="wybierz">wybierz</option>
<option value="1">01.00</option>
<option value="2">02.00</option>
<option value="3">03.00</option>
<option value="4">04.00</option>
<option value="5">05.00</option>
<option value="6">06.00</option>
</select> do <span id="g2"></span>

<script type="text/javascript">
document.getElementById('g1').onchange = function(){
  if(this.value == 'wybierz')
   document.getElementById('g2').innerHTML = '';
  else
   document.getElementById('g2').innerHTML = (parseInt(this.value)+3)+'.00';
}
</script>


Stwierdziłem, że nie ma sensu tworzyć sztucznego select. Jak potrzebujesz tej wartości do formularza użyj <input type="hidden"> - jego wartość zmieniasz:
Kod
document.getElementById('ID_inputa').value = 'wartosc'; //np. (parseInt(this.value)+3)+'.00'
Mackos
Ok, dzięki właśnie o coś takiego mi chodziło.
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.