FORM HTML - totalni početnik

FORM HTML - totalni početnik

offline
  • Pridružio: 20 Okt 2020
  • Poruke: 4

Evo mučim se već neko vreme da podatke iz forme u html-u pretvorim u promenljive u JS, sa kojima posle operišem kako oću Smile



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14824
  • Gde živiš: Niš

Možda ti ovaj thread pomogne: https://stackoverflow.com/questions/3547035/javascript-getting-html-form-values



offline
  • Pridružio: 20 Okt 2020
  • Poruke: 4

Pomoglo mi je donekle. Hvala.

HTML:
<input type="text" name="name" id="uniqueID" value="value" />
JS:
var nameValue = document.getElementById("uniqueID").value;


Dakle, ovo radi.
Međutim, interesuje me kako da ono što upišem u formu submitujem u Javascript promenljivu?

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

darko.jocic.ns ::Međutim, interesuje me kako da ono što upišem u formu submitujem u Javascript promenljivu?
Koristi FormData.

const formFields = new FormData(document.querySelector('#id_forme'));
Onda možeš dobijati parove imena i vrednosti polja koristeći metodu entries nad FormData objektom.

for ([key, value] of formInformation.entries()) {   console.log(key, value); }

offline
  • Pridružio: 20 Okt 2020
  • Poruke: 4

Sad dolazimo do toga da sam totalni amater i da ću postavljati glupa pitanja. Unapred hvala na razumevanju. Verujem da bi bilo lakše da zamolim nekog da uradi ono što mi treba, jer za poznavaoca je to par minuta posla, ali izazov mi je da usput nešto i naučim.
Dakle šta mi treba...
Treba mi forma sa 8 polja...
Znači da se ubaci osam pojmova..
da se pritisne dugme i da se to u Javi prepozna kao 8 promenljivih...
Ono što mi je vasa.93 predložio da pogledam je dalo prve korake ka rešenju

HTML:
<input type="text" name="name" id="uniqueID" value="value" />
JS:
var nameValue = document.getElementById("uniqueID").value;

Na ovaj način u JS dobijam promenljivu sa kojom posle mogu da operišem, jedini promlem je što je vrednost promenljive zadata u kodu : value="value.."

Ono što bi ja hteo da korisnik upiše u polje rečenicu (i tako 8 puta)
Da pritisne button i da se u JS kreira 8 variabli

Eto Smile

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

'Ajde polako, korak po korak.

Prva stvar - Java i JavaScript su potpuno različiti programski jezici, iako su sličnog naziva. Ako te zanima više o ovoj temi imaš gomilu članaka na internetu o istoriji JavaScript-a i zbog čega ima Java u nazivu. Ovo ti govorim pre svega da se ne zbuniš u budućnosti kada budeš pretraživao nešto pa da nabasaš na primere za Javu i da razmišljaš zbog čega neće da ti radi.

Deklarisanje novih promenljivih tokom izvršavanja JavaScript-a jeste moguće, no svakako nije ono što bi želeo da radiš iz dva razloga:

1. Morao bi da definišeš promenljive u globalnom window objektu i tako bi mogao preći preko vrednosti neke koja je već definisana.
2. Te promenljive bile bi globalno dostupne i bilo koji deo koda bi mogao da ih menja. Ovo bi bila noćna mora za održavanje i pronalaženje bagova.

Kao što sam rekao, najlakši način za dobijanje vrednosti iz forme je korišćenjem FormData objekta. Nakon toga, svaku rečenicu iz forme mogao bi da smestiš u neki predefinisani niz. Konkretno rešenje za tvoj problem izgledalo bi ovako:

HTML

<form id="form1">   <input type="text" name="sentence1" />   <input type="text" name="sentence2" />   <input type="text" name="sentence3" />   <input type="text" name="sentence4" />   <input type="text" name="sentence5" />   <input type="text" name="sentence6" />   <input type="text" name="sentence7" />   <input type="text" name="sentence8" />   <input type="submit" value="Ubeleži rečenice" /> </form>

JavaScript

// deklarišemo niz za rečenice   var sentences = []; // pomoću metode addEventListener dodajemo slušalac događaja "submit" // koji će se okinuti pri slanju forme - drugim rečima, pri slanju forme izvršiće // se funkcija koja je prosleđena kao drugi parametar document.querySelector('#form1').addEventListener('submit', function() {     // pomoću document.querySelector metode dobijamo formu koja nam treba tako što   // prosledimo njen selektor (u ovom slučaju ID forme), te dobijenu formu prosleđujemo   // kao argument za kreiranje FormData objekta koji će sadržati njene vrednosti     var formInformation = new FormData(document.querySelector('#form1'));   // pomoću entries metode koju pozivamo na formInformation objektu dobijamo parove imena i vrednosti polja   // za svaki par imena polja i njegove vrednosti dodajemo vrednost u niz sa rečenicama     for (var [name, value] of formInformation.entries()) {     sentences.push(value);   } });

Ostavio sam ti komentare u kodu. Ne znam koliko je tvoje znanje pa ako imaš nekih konkretnih nedoumica, pitaj.

offline
  • Pridružio: 20 Okt 2020
  • Poruke: 4

Napisano: 22 Okt 2020 8:42

Hvala mnogo na trudu.
Isto tako mislim da mi ovo ne pomaže. Zapravo, tačnije ja ne vidim tačno kako da iskoristim Vaš savet.
Što se tiče forme bio sam uradio upravo tako, pa sam onda izbacio "submit" i ubacio "button", hoteći da mi uneti podaci ostanu na istom mestu....
Ono što meni treba (ili što mislim da mi treba, a poslednji put sam programirao pre 20-ak godina, kada sam napravio maser-mind u basicu Smile) je da bukvalno svaki unos postane nova (globalna) promenljiva...(nije to ceo sajt samo jedna stranica)
Dakle prvi unos "sentence1", u vašem primeru da postane npr. "var a", drugi - "var b"... i tako 8 puta...

Ono što meni trebe je
amcharts.com/demos/wheel-of-life/
s tim što hoću da napravim tako da korisnik sam bira osam oblasti

Ono što sam uradio je da sam spojio html i js u jedan file, definisao promenljive ( u mom slučaju samo tri za probu, a, b i c), obezbedio da se i na oba mesta prikažu imena promenljivih ( i iznad skale od 1 do 10(html) , i na samom grafikonu(js)) i napravio formu.
Ono što ne mogu već par dana je da unos pretvorim u var a, var b itd...

Nema šta nisam pogledao i pročitao, ali nisam našao direktan odgovor.
Imam osećaj da mi je pred nosom Smile

Okačiću i fajl (u stvari dva i CSS) i ne morate naravno uraditi. Samo mi objasnite Very Happy

Pozdrav i Hvala

mycity.rs/must-login.png
mycity.rs/must-login.png

Dopuna: 22 Okt 2020 21:35

Deo problema rešio. Uneto u tabelu se pojavljuje iznad skale...
HTML
<center>
<table border="3">
<thead>
<tr>
<th>1.</th>
<td><input type="text" name="name1" id="name1"></td>
</tr>
</thead>
<tbody>
<tr>
<th>2.</th>
<td><input type="text" name="name2" id="name2"></td>
</tr>
<tr>
<th>3.</th>
<td><input type="text" name="name3" id="name3"></td>
</tr>

<tr id="btna">
<td colspan="2"><input type="button" name="button" id="btn" value="Add" onclick="Naslov()"></td>
</tr>
</tbody>
</table>


</center>

JS

var a = [];
var b = [];
var c = [];


var x = 0;

function Naslov(){



a[x] = document.getElementById("name1").value;
b[x] = document.getElementById("name2").value;
c[x] = document.getElementById("name3").value;



var ispis_a = document.getElementById("prvi");
ispis_a.innerHTML = a[x];



var ispis_b = document.getElementById("drugi");
ispis_b.innerHTML = b[x];



var ispis_c = document.getElementById("treći");
ispis_c.innerHTML = c[x];



x++;

}

Dopuna: 22 Okt 2020 21:35

JOš samo na točku Smile

Ko je trenutno na forumu
 

Ukupno su 1135 korisnika na forumu :: 27 registrovanih, 7 sakrivenih i 1101 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: AleksSE, Arahne, babaroga, Battlehammer, bozo13, Brana01, cikadeda, coaaco, djuradj, draganl, kalens021, krkalon, kunktator, KUZMAR, mercedesamg, Mercury, Metanoja, nenad81, pein, Povratak1912, raptorsi, ruma, Sirius, theNedjeljko, vathra, vladaa012, Žoržo