Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Spajanje vrednosti nekoliko input polja pre slanja

[es] :: Javascript i AJAX :: Spajanje vrednosti nekoliko input polja pre slanja

[ Pregleda: 2045 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Psyche
Beograd

Član broj: 43591
Poruke: 112
*.absolutok.net.



Profil

icon Spajanje vrednosti nekoliko input polja pre slanja05.07.2006. u 01:32 - pre 216 meseci
Koristim Moodle, medjutim isti ima malo nezgrapan nacin za unos tzv. Clozed pitanja, odnosno ubacuje se ovakav kod:

KOD
{1:SHORTANSWER:Odgovor 1~=Odgovor 2~Odgovor 3}

kroz jedno textarea polje.

i sl.

Posto su neki od oih delova stalno prisutni: {1:SHORTANSWER: } mislila sam da ih unosim preko skrivenih input polja, a da napravim obicna tekst polja za unos odgovora. Takodje, tacan odgovor se oznacava znakom jednakosti = (u ovom slucaju to bi bio odgovor 2) i sve bi trebalo da izgleda nekako ovako pojednostavljeno:



Ostavila bih desetak praznih mesta za ponudjene odgovore, to je maksimum koji Moodle inace podrzava, jer za pojedina pitanja broj ponudjenih odgovora ce da varira. Cekiranjem boxa ispred odredjenog odgovora, sugerise se da je isti tacan, odnosno ispred se stavlja =. Kako da mi JS ovo ispovezuje tako da na kraju dobijem isto ovo:

KOD
{1:SHORTANSWER:Odgovor 1~=Odgovor 2~Odgovor 3}


i posaljem u bazu u tom obliku.

Odgovori se razdvajaju znakom ~.

Da li je moguce ovo izvesti i kako?

 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Spajanje vrednosti nekoliko input polja pre slanja05.07.2006. u 08:46 - pre 216 meseci
Ajde nešto na brzinu.
Pošto nisam baš najveštiji u objašnjavanju kako izvesti postaviću primer koda.
Možda sam nešto izostavio, jer nisam siguran da sam najbolje razumeo pitanje.
Ja sam text i checkbox polja nazvao kao članove niza, možda Moodle koristi neke druge nazive za polja, ne bi bilo loše da postaviš html kôd.

html
Code:

<form name="testForm">
  <input type="hidden" name="prefix" value="1:SHORTANSWER:" />
  <input type="checkbox" name="chb[]" /><input type="text" name="txt[]" /><br />
  <input type="checkbox" name="chb[]" /><input type="text" name="txt[]" /><br />
  <input type="checkbox" name="chb[]" /><input type="text" name="txt[]" /><br />
  <input type="checkbox" name="chb[]" /><input type="text" name="txt[]" /><br />
  <input type="checkbox" name="chb[]" /><input type="text" name="txt[]" /><br />
  <input type="checkbox" name="chb[]" /><input type="text" name="txt[]" /><br />
  <input type="checkbox" name="chb[]" /><input type="text" name="txt[]" /><br />
  <input type="checkbox" name="chb[]" /><input type="text" name="txt[]" /><br />
  <input type="checkbox" name="chb[]" /><input type="text" name="txt[]" /><br />
  <input type="checkbox" name="chb[]" /><input type="text" name="txt[]" /><br />
  <input type="button" value="ok" onclick="getAnswers()" />
</form>


js:
Code:

function getAnswers() {
  var forma = document.testForm;
  var checkBoxs = forma.elements['chb[]'];
  var txtBoxs = forma.elements['txt[]'];
  var prefix = forma.prefix.value;
  var setAnswers = new Array();
  for(var i=0, len = txtBoxs.length; i<len; i++) {
    if(txtBoxs[i].value.length) {
      setAnswers[i] = (checkBoxs[i].checked) ? ('=' + txtBoxs[i].value) : txtBoxs[i].value;
    }
  }
  if(setAnswers.length == 0) {
    var msgErr = 'You did not add any answer!!!';
    alert(msgErr);
  }
  var output = setAnswers.join('~');
  alert('{' + prefix  + output + '}');
}

Banned - Not available
 
Odgovor na temu

Psyche
Beograd

Član broj: 43591
Poruke: 112
*.absolutok.net.



Profil

icon Re: Spajanje vrednosti nekoliko input polja pre slanja05.07.2006. u 16:05 - pre 216 meseci
Evo postavicu i kod za originalnu i za izmenjenu stranicu sa svim tim hidden poljima, prefixima, infixima, sufixima itd.

Stranica koja se nalazi u sklopu Moodle-a izgleda ovako:




i daje ovo kao rezultat kad se ispise u prozoru za polaganje:



Posto ce nasa sva pitanja za sve testove tokom kursa izgledati uniformno napravila sam ovakav sablon:





Prednosti su:
1. mnogo preglednije i lakse za snalazenje
2. moguce preko starog pitanja presnimiti novo uz izvesne korekcije tako da se npr ne moraju u okviru istog testa unositi vise puta nazivi parametara
3. moci cu, nadam se, preko JS da kontrolisem ispravnost unetih podataka u smislu da se ne cekira vise od jednog boxa u bloku ili cu staviti tu radio buttons, ne znam sta je bolje - Moodle inace tolerise vise tacnih odgovora ili polovicne odgovore i sl, nama treba striktno jedan tacan koji nosi 100% poena ostalo nista.


Malo pojasnjenje. Pitanje se sastoji od tri bloka.

Prvi deo sa parametrima je isti za sva pitanja u okviru jednih vezbi. Dakle, bice potrebno samo kroz pitanja (njih deset) cekirati drugu vrednost.

Numericka vrednost se unosi za svako pitanje ponaosob.

Statisticka znacajnost takodje se podesava preko checkboxa za svako pitanje, ali posto je ovaj deo isti za sve vezbe i testove u okviru njih stavila sam vec predefinisane values tako da nije potrebno kao za parametre posebno unositi tekst kod svakog novog testa/vezbi.

Prikačeni fajlovi
 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Spajanje vrednosti nekoliko input polja pre slanja05.07.2006. u 19:59 - pre 216 meseci
Ajde ovako, pogledaj fajl uz poruku.
U kodu ćeš, nadam se, videti poseban blok koda tu sam smestio js funkcije (init, getData, getDataVal i selectChbox), moglo je sve to smestiti u manje funkcija, ali ... Dodao sam na kraju jedno dugme "Add data to TextArea" koje poziva funkciju init() i smešta te nove podatke u textarea, ali stavio sam i u form elemenat event onsubmit poziv iste funkcije, pa zato ti ukloni jedno kako ne bi se slučajno duplirali podaci. Nisam koristio neke provere, ti ukoliko ti je potrebno možeš ubaciti ili pojednostaviti kod ukoliko je potrebno. Izmenio sam na nekim mestima html kod, jer mislim da si na tim mestima bila napravila greške (prefix1, za unos numericke vrednosti stavio sam NUMERICAL). E da, kod unosa numericke vrednosti, vidim i da se tu dodaje znak jednakosti, pa za to nisam siguran, dodao sam da se prvoj vrednosti dodaje znak "=". I uklonio sam display css osobinu za textarea, kako bi testirao ispravnost, ti vrati kako je bilo.
Dodao sam i da je moguće selektovati samo jedan checkbox, funkcija selectChbox(), potrebno je izmeniti html kôd za checkbox, checkbox-ovi se ponašaju kao radio button-i.

Nadam se da je to to.

Pozdrav.

Banned - Not available
Prikačeni fajlovi
 
Odgovor na temu

Psyche
Beograd

Član broj: 43591
Poruke: 112
*.absolutok.net.



Profil

icon Re: Spajanje vrednosti nekoliko input polja pre slanja05.07.2006. u 22:19 - pre 216 meseci
Jeste, hvala uspela sam.

Morala sam samo ovo:

print_textarea($usehtmleditor, 15, 60, 630, 300, "questiontext", $question->questiontext);

da zamenim ovim:

<textarea id="edit-questiontext" name="questiontext" rows="15" cols="65"></textarea>

posto iz nekog razloga nije hteo da ubacuje u html editor, ali na kraju krajeva isti mi nije ni potreban posto necu da formatiram tekst za ovu vrstu pitanja.
 
Odgovor na temu

[es] :: Javascript i AJAX :: Spajanje vrednosti nekoliko input polja pre slanja

[ Pregleda: 2045 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.