Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript] Pobieranie wartosci z selecta
Forum PHP.pl > Forum > Przedszkole
v1t4n
Witam

Mam problem z moim wlasnym skryptem. Jest to fragment dziennika internetowego ktory robie dla mojej szkoly. Cel skryptu:
  1. Pobranie wartosci optiona z pewnego selecta
  2. Pobranie wartosci diva przez innerHTML o nazwie ktora dostalem w 1 pkt
  3. Wstawienie do textarea wartosci ktora pobieram z diva (pkt 2)
...a na bardziej ludzki jezyk to chodzi o to ze mam pole select w ktorym optiony to pierwsze 37 znakow z uwagi + data dodania. Chce zrobic edycje wiec pasuje mi to wciepac do textarea. Na dole strony jest cala uwaga w divie ze stylem "display:none". Po wybraniu optiona skrypt ma sciagnac zawartosc diva i wsadzic go do textarea. Sprawdzalem JS debuggerem - bledow nie ma.

HTML:
  1. <div class="hidden" id="hnote[1][3]">
  2. <h4>Edycja</h4>
  3. <form action="http://localhost/~dziennik/index.php?action=edit&item=notes&class_id=25&subject_id=36" method="post" name="noteEditForm[1]">
  4. <center><select name="noteSelect[1]" class="note" onChange="show_note_select(1)">
  5. <option>Wybierz uwagę do edycji</option>
  6. <option value="1">as dasdasda sdasd asdasd asda sdasd as... | 01-01-1970</option>
  7. <option value="2">ads asd asd asd asdasd asd ads asd asd... | 01-01-1970</option>
  8. </select><br/>
  9. <textarea class="note" id="noteEditTextarea[1]"></textarea><br/>
  10. <br/>
  11. <input type="submit" value="Dodaj uwagę"/>
  12. </form>
  13. </div>
...tutaj troche niepotrzebnego smiecia...
  1. <div id="hNoteSelect[1]" class="hidden">as dasdasda sdasd asdasd asda sdasd asdas dasd asdasd </div>
  2. <div id="hNoteSelect[2]" class="hidden">ads asd asd asd asdasd asd ads asd asd asd asdasd asd</div>


JS:
Kod
function show_note_select(id){
    var mySelect = document.noteEditForm[id].noteSelect[id].options[document.noteEditForm[id].noteSelect[id].selectedIndex].value;
    var myTextarea = document.getElementById('noteEditTextarea['+id+']');
    var myHDiv = document.getElementById('hNoteSelect['+mySelect+']').innerHTML;
    myTextaera.innerHTML = myHDiv;
}

Tak, tak, bardzo dobrze wiem ze skrypt JS moglem zmiescic w jednej linii ale tak jest dla mnie czytelniej a 3 zmienne to mi wisza...

Jedna rzecz ktora jeszcze wymaga wyjasnienia: div w html z classa hidden - zawartosc tej warstwy wklejam na stronie (tez przez innerHTML) jeszcze wyzej, wiec pierwszy kod html "jest" na stronie 2x.

I prosze, nie pytajcie czemu wszstko jest w JS a nie normalnie w PHP. Takie mam zalecenie odgorne zeby strona przeladowywala sie jak najmniej razy bo stare pierdziele w szkolach sie moga pogubic.
webdice
Nazwa formularza nie może zawierać index'ów.

  1. <div class="hidden" id="hnote[1][3]">
  2. <h4>Edycja</h4>
  3. <form action="http://localhost/~dziennik/index.php?action=edit&item=notes&class_id=25&subject_id=36" method="post" name="noteEditForm">
  4. <center><select name="noteSelect[1]" class="note" onChange="show_note_select(this.value)">
  5. <option>Wybierz uwagę do edycji</option>
  6. <option value="1">as dasdasda sdasd asdasd asda sdasd as... | 01-01-1970</option>
  7. <option value="2">ads asd asd asd asdasd asd ads asd asd... | 01-01-1970</option>
  8. </select><br/>
  9. <textarea class="note" id="noteEditTextarea[1]"></textarea><br/>
  10. <br/>
  11. <input type="submit" value="Dodaj uwagę"/>
  12. </form>
  13. </div>
  14.  
  15. <div id="hNoteSelect[1]" class="hidden">as dasdasda sdasd asdasd asda sdasd asdas dasd asdasd </div>
  16. <div id="hNoteSelect[2]" class="hidden">ads asd asd asd asdasd asd ads asd asd asd asdasd asd</div>
  17.  
  18.  
  19. function show_note_select (id)
  20. {
  21. document.noteEditForm.noteEditTextarea[1].value = document.getElementById ('hNoteSelect[' + id + ']').innerHTML
  22. }
  23.  
v1t4n
Dzieki wielkie smile.gif (i przepraszam za klopot)

Co prawda dla kazdego ucznia mam oddzielny formularz ale nie musi byc on jako index wstawiany.
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.