[HTML] Pole TEXT z value jako zmienna

Witam,

Pomyślałem, że posiedzę sobie trochę w htmlu i scriptach. I chciał bym zrobić coś takiego (ale nie wiem jak), że:

Jakaś zmienna była pobierana z zawartości pola TEXT,

Skrypt uruchamiał się po naciśnięciu BUTTONA

inne pole formularza TEXT będzie miało value o wartości jakiejś zmiennej (po naciśnięciu buttona)

Jestem dosyć ciemny ale jako tako podstawy znam :smiley:

Chodzi mi tylko o kody w htmlu.

Javascript.

Wydaje mi się, że html’em tego nie zrobisz. Ja użyłbym php - tylko czy serwer, na którym na być ta strona obsługuje php.

Dlaczego?

Najpierw trzeba odpowiedzieć sobie na pytanie, co ten skrypt ma robić i czy potrzebujemy skryptu wykonywanego po stronie klienta, czy serwera.

Obliczanie pola powierzchni koła

Warto¶ci zmiennych

[/code]

A więc tak:

Chciał bym aby 2 pierwsze zmienne (prom oraz zpk) były pobierane z pola “” a zmienna ppk była “odświeżona” po naciśnięciu przycisku submit (którego w tym kodzie nie ma)

Edit: Tutaj php na pewno nie będzie potrzebne.

Pobranie z formularza:

var formul = document.getElementById('identyfikator_formularza');

var prom = formul['nazwa_pola'].value; //albo parseInt(formul['nazwa_pola'].value) jeśli chcesz dostać zmienną jako liczbę całkowitą

Po naciśnięciu klawisza: Do znacznika dodajesz zdarzenie onsubmit:

onsubmit="ppk = this.value; /*albo parseInt(this.value)*/ return false; //jeśli nie chcesz wysyłać"

Coś chyba musiałem pokręcić bo nie do końca działa:

Obliczanie pola powierzchni koła


r= 

   







[/code]

No właśnie, działa ale nie do końca. gdy w r wpiszę 1, kliknę oblicz jest 0, potem wpiszę 2, nadal jest 0, i aż do 4 jest zero. Ale jak teraz zacznę cofać (wstecz) to przy ok. 1-2 wynik jest. Co jest grane? Czy nie trzeba nic dopisać w ramach head?

Powinno być:

var prom = parseInt(formul['prom'].value);

To samo, a na dodatek po otworzeniu strony wynik jest przedstawiony jako NaN. Skrypt zachowuje się tak jak by najpierw przedstawiał wynik a potem go obliczał.

EDIT: Już nie trzeba, załatwiłem to function()

No ja mam właśnie mały problem. Dodałem function() ale nie działa. Wydaje mi się, że coś źle wpisałem ale nie weim co. Kod zmodyfikowałęm pod wzgledem zastosowanego wzoru mat.

Obliczanie pola powierzchni trapezu


a= 

b= 

h= 

   







[/code]

metody document.write() nie jest tu najlepszym rozwiązaniem. Proponuję:

Obliczanie pola powierzchni trapezu


a= 

b= 

h= 





[/code]
lub jeżeli już koniecznie chcemy użyć document.write() to:

[code] Obliczanie pola powierzchni trapezu a= b= h=

Dzieki, teraz działa. Nie wiem tylko jak można dodać dopisek cm[kwadratowe]. kiedy zastosuje zaapis

span.innerHTML='wynik='+ppk'cm2';[/code]

to nie wyswietla mi wyniku, to samo w przypadku wersji kody z document.write()

Zapomniałeś mały plusik :lol:

span.innerHTML='wynik='+ppk+'cm2';[/code]
Poza tym jeżeli już piszesz "cm kwadratowe" to trzeba przy polach napisać że to w centymetrach:

[code]a= cm2

Ale to ogranicza możliwości programu. No chyba że dasz select ze wszystkimi istniejącymi jednostkami odległości, jest ich coś kolo 50 szt :smiley:

Dzieki :smiley: Jak by była opcja nagradzania userów to dostałbys 13tySmoku mega plusa odemnie :slight_smile: Co do ograniczania jego funkcjonalności to robie to raczej na własne potzreby wiec podmienienie jednostek i wzoru jest znikomym problemem.

I mały OT. Czy w dzisiejszych czasach uważacie, że uczenie się programowania zaczynająć od JS jest lepszy od Pascala. Moim zdaniem tak ze względu na multiplayformowość JS i wieksza łatwość w programowaniu i ew. supportem.

JS ma ogromne ograniczenia, oraz jest strasznie powolny. Zaczynać trzeba ob C++ (wg mnie), jak zrozumiesz C++ to właściwie rozumiesz już wszystkie, zostanie jedynie kwestia składni, więc na każdy następny język potrzebujesz jedynie suchej dokumentacji.

Pstanowiłem rozwinąć jeszcze możliwości tego kalkulatora tak aby poprostu obliczał wynik działania zdefiniowanego przez uzytkownika a nie na podstawie wzoru. Np.

. Chciałbym zrobić coś takiego jak na stronie http://tablicematematyczne.info/index.p … kalkulator Tam jst to zrobione w php ale wydaje mi się,że zamierzony efekt w java script dało by się zrealizować. Myślałęm że wystarczy podać mu do odczytu tylko jedni pole a on odczyta już sobie liczby ze znakami. Niestety odczytuje tylko do pierwszego znaku działania. URL wygląda tak

a wynik wynosi 5.

Obliczanie pola powierzchni trapezu


b= 





[/code]

Może wie ktoś jaką funkcję należało by zastosować aby skrypt nie zatrzymywał się na pierwszym napotkanym znaku mat. :slight_smile:

zamień var b = parseFloat(getparam(‘b’)); na var b = getparam(‘b’);

Jak widzę rozwijasz gorszą wersję tego programu, nie rozumiem czemu tak się uparłeś z tym dokument.write().

Tez koniecznie trzeba wstawić b w środek funkcji ‘function calc { return ’ +b+’; }’ po czym można będzie tą funkcje wywołać.

Ok, skoro uważasz ,że ta metoda jest gorsza to użyję tej drugiej. Niestety przy tej drugiej metodzie to co podałęś poniżej nie działa.

Kalkulator


a= 





[/code]

Popełniłeś kilka błędów.

  1. getparam() to funkcja z innego przykładu

  2. funkcja calc() u ciebie zwraca napis " a"

  3. do span’a dopisujesz tekst ze zmiennej a

Tak to powinno wyglądać:

Kalkulator



  Wyrażenie: 



[/code]
 :-D



Musisz jednak pamiętać że przy napotkaniu błędu funkcji skrypt zostanie przerwany, wystarczy spróbować wpisać "(2+3", aby temu zapobiec trza trochę pogłówkować:

[code] Kalkulator Wyrażenie matematyczne:

Ciekawe jest to że jak się wpisze “Math.log(10)” to też obliczy poprawnie. A nawet cuda typu: “getparam(‘wyrazenie’).length”.

EDIT: Udało się uprościć kontrolę błędów.