Re: tratarea evenimentelor cu html

9 posts / 0 new
Last post
ono
Re: tratarea evenimentelor cu html

Am cautat pe net sa vad cum se poate trata un eveniment de mouse intr-un form html. Ca exemplu, am dat peste:

radius: circumference:
area:

Da nu merge! am pus la radius valoarea 1 si tot nu vrea! Sunt convins insa ca efectul este la mine. Spuneti-mi, va rog, ce ar trebui sa-i mai fac?
2. Daca trebuie sa construiesc o functie care sa calculeze aria si circumferinta cercului, ce folosesc? Eu stiu cate ceva din  C/C++ si ceva php. Trebuie folosit numai JavaScript pentru functii de genul acesta?
3. As mai avea o intrebare: Cum se poate seta valoarea calculata chiar in casuta input respectiva a formului html? Pentru ca eu stiu doar sa citesc valori din campurile formului html, nu si sa le afisez in form. Ca exemplu, m-as referi tot la codul de mai sus. Va multumesc anticipat.

adrian_7
Re: tratarea evenimentelor cu html

Fara sa fiu rau sau orgolios trebuie sa-ti spun ca threadul asta face aluzie la skill-urile tale de programare :P

Deci in momentul in care ai zis in html onclick="Circle_calc(this.form);" ar trebui sa ai deja undeva in pagina functia javascript Circle_calc(Values). Iar daca vrei sa o faci de unul singur (banuiesc ca nu e asa greu), decat sa o cauti si sa o copiezi de undeva de pe net, va trebui ca in sa parcurgi vectorul de elemente Values pentru a afla valorile - ceea ce nu recomand. 

Ti-as recomanda sa faci asa:
- la input sa pui  onclick="Circle_calc()";
- iar in functie pentru fiecare valoare de care ai nevoie scrii ceva de genu: var r = parseFloat(document.getElementById('raza').value); desigur presupunand ca input-ul tau are deja atributul id="raza". s.a.m.d

Si cateva link-uri utile:
- HTML DOM: http://www.w3schools.com/htmldom/default.asp
- Javascript: http://www.w3schools.com/js/default.asp
- Elemente dinamice cu javascript: http://adriansilimon.blogspot.com/2008/06/javascript-elemente-dinamice-drag-and.html

ing. Patkos Csaba
ing. Patkos Csaba's picture
Re: tratarea evenimentelor cu html

Completez si eu cu cateva idei.

2) iti trebuie o tehnologie "client-side" sau i se mai zice "browser-side", adica sa se intample calculul in browser. Pentru asta cel mai la indemana este JavaScript.
Daca vrei sa faci insa ceva de genul:
- completezi form
- apesi un buton (aka ) "Calculeaza"
- atunci poti sa preiei parametri, sa calculezi in PHP si sa ii dai raspunsul. In aceasta situatie, calculul se intampla pe server.

3) la orice input poti pune parametrul "value"
- de exemplu, urmatorul cod, va afisa o casuta de text in care poti scrie, cu textul afisat initial "scrie ceva"

Csabi's BLOG

Linux registered user # 457717

ono
Re: tratarea evenimentelor cu html

Doream doar sa-mi ajut copilul la scoala. Dar cum spuneam, java script nu se numara printre cunostintele mele. Cum la scoala elevii fac doar php, credeam ca pot face o functie de acest fel si s-o asociez cu onclick. De fapt, am facut una, dau click si lucreaza. Doar ca nu imi afiseaza aria cercului in inputul corespunzator, ci acolo unde se termina formul (cu echo). Ma gandeam insa daca exista si un fel de back posting, adica sa afisez in formular datele calculate, asa incat, dupa ce dau click, butonul sa determine completarea datelor din formular. getDocumentByName sau ById pare sa fie o solutie, dar e foarte indepartata de scopul meu.
Copiii au facut si Java la scoala. Asta a mai mers cumva, fiindca e foarte asemanator cu Cpp. Dar Java script ?! Pe vremuri ma foloseam de aspx. Asta mergea cu VB sau C#. Dar de cand am renuntat definitiv la MSoft, nu regret defel, dar nu m-am incetatenit 100% cu linuxul. Multumesc foarte mult pentru raspuns, Adrian_7; tot e bine, poate ca nu asa se rezolva ceea ce vreau eu, existand alta cale.

Multumesc foarte mult, d-le Patkos Csaba! Trec imediat la treaba! Dar tehnologia client-side nu presupune ca sunt dependent de instalarea lui Java script pe masina? Adica, daca ar fi 100 de useri care ar apela programul asta, toti 100 ar trebui apoi sa aibe instalat pe statiile lor de lucru si pachetul js? La nevoie... Dar mai intai incerc cu punctele 2 si 3 din postul dv.

ono

ing. Patkos Csaba
ing. Patkos Csaba's picture
Re: tratarea evenimentelor cu html

Orice browser modern stie javascript implicit, dar in unele cazuri acesta poate fi oprit.

Daca este o materie pur PHP, eu iti recomand sa faci cum am zis mai sus. Ca sa-ti dau o idee, eu as face ceva de genul (NOTA: nu am rulat codul de mai jos, il scriu doar asa din cap, repede):
Fisierul index.php (sau ce nume vrei sa aiba):


      
      
Introduceti un numar:      
           

Csabi's BLOG

Linux registered user # 457717

adrian_7
Re: tratarea evenimentelor cu html

Ok acum vad ce vrei sa faci. Dar sa-i dam o nota de eleganta codului eu l-as scrie asa:


   
      
Introduceti un numar:      
      0): ?> Aria patratului este: =$aria?>    
ing. Patkos Csaba
ing. Patkos Csaba's picture
Re: tratarea evenimentelor cu html

Acum ca o recomandare personala ... adica ce mise pare mie personal mai OK, nu e nici o regula.

Daca ai de a face cu programe lungi si complicate, nu e practic sa amesteci codul de PHP si HTML. Eu fac totul PHP si cu "echo '';" si este mult mai usor de facut management la el. Plus ca daca ai de exemplu de afisat o tabela pe care o construiesti dinamic cu valori de exemplu din mysql, e clar ca solutia cu cod HTML in fisier direct nu mai merge, sau va deveni extrem de confuz.

Desigur, astea sunt preferintele mele dupa 5-6 ani de programat in PHP si incercat de toate felurile.

Csabi's BLOG

Linux registered user # 457717

umc
Re: tratarea evenimentelor cu html

cel mai elegant ramane totusi lucrul cu template-uri...

pe vremea cand lucram si eu cu php (acum sunt cu python) foloseam Smarty... destul de elegant sa ai frumos codul html separat, php separat, si se folosesc template tags, etc.

sunt sigur ca sunt mai multe sisteme de template-uri... Ideea e sa le separi frumos, si daca se poate sa nu reinventezi roata, si mai bine... ;)

ono
Re: tratarea evenimentelor cu html

Multumesc frumos, merge!

ono