Dynamic Form Update

Discutii legate de AJAX, jQuery, MooTools, Prototype, Dojo, Yahoo! UI Library,script.aculo.us, ExtJS,AngularJS, Backbone.js, Ember.js, KnockoutJS

Moderator: Moderatori

Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

Dynamic Form Update

Mesajde PET » Joi Mai 15, 2008 7:50 pm

Am o lista in care in niste input forms populez informatia luata din baza de date.

Vreau ca atunci cand sterg ceva dintr-un input si scriu altceva, automat sa se faca update in baza de date cu ajax. Am cautat ceva tutoriale dar fara succes.


---------------
| 48888888 |
--------------

Ala e un input si am luat din baza de date informatia. Daca eu sterg si scriu altceva, frau sa faca imediat update in baza de date.

Sugestii? :roll:

Mersi


PET - Vesnicul n00b al acestui forum :)

Avatar utilizator
MihaiC
Senior Member
Mesaje: 1644
Membru din: Dum Mai 14, 2006 8:07 pm

Re: Dynamic Form Update

Mesajde MihaiC » Joi Mai 15, 2008 8:00 pm

PET scrie:Sugestii?


Da, descurca-te !

http://www.w3schools.com/Ajax/Default.Asp
Dev @ oblio.eu

Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

Re: Dynamic Form Update

Mesajde PET » Joi Mai 15, 2008 8:58 pm

MihaiC scrie:
PET scrie:Sugestii?


Da, descurca-te !

http://www.w3schools.com/Ajax/Default.Asp


WoW... foarte interesant postul. Dupa cum am zis. Am citit, am incercat si nu stiu cum sa fac.
PET - Vesnicul n00b al acestui forum :)

Avatar utilizator
catalinxpro
Average Member
Mesaje: 186
Membru din: Mie Iul 12, 2006 1:43 pm
Contact:

Mesajde catalinxpro » Joi Mai 15, 2008 9:27 pm

salut...ai incercat :

Cod: Selectaţi tot

onchange="this.form.submit();"

Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

Mesajde PET » Vin Mai 16, 2008 8:09 am

catalinxpro scrie:salut...ai incercat :

Cod: Selectaţi tot

onchange="this.form.submit();"


adica onchange, sa faca acea functie?

Problema e ca nu stiu cum sa scriu functia de update in AJAX/Javascript.
PET - Vesnicul n00b al acestui forum :)

Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Vin Mai 16, 2008 11:02 am

Si n-ai destule tutoriale pe net?

Avatar utilizator
Copyright
Senior Member
Mesaje: 869
Membru din: Dum Dec 17, 2006 7:24 pm
Localitate: Bucuresti
Contact:

Mesajde Copyright » Vin Mai 16, 2008 11:10 am

PET scrie:...am incercat...


Posteaza ce ai incercat sa vedem si noi.



Later.

Avatar utilizator
catalinxpro
Average Member
Mesaje: 186
Membru din: Mie Iul 12, 2006 1:43 pm
Contact:

Mesajde catalinxpro » Vin Mai 16, 2008 12:01 pm

incearca asta.....

Cod: Selectaţi tot

<form method='post'>
<input type='text' onchange="this.form.submit();">
</form>

Avatar utilizator
MihaiC
Senior Member
Mesaje: 1644
Membru din: Dum Mai 14, 2006 8:07 pm

Mesajde MihaiC » Vin Mai 16, 2008 12:10 pm

catalinxpro scrie:incearca asta.....

Cod: Selectaţi tot

<form method='post'>
<input type='text' onchange="this.form.submit();">
</form>


De fapt e:

Cod: Selectaţi tot

<form method='post'>
<input type='text' onkeyup="functie_AJAX_pe_care_o_face_PET_citind_pe_net();">
</form>
Ultima oară modificat Vin Mai 16, 2008 12:13 pm de către MihaiC, modificat de 2 ori în total.
Dev @ oblio.eu

Avatar utilizator
catalinxpro
Average Member
Mesaje: 186
Membru din: Mie Iul 12, 2006 1:43 pm
Contact:

Mesajde catalinxpro » Vin Mai 16, 2008 12:12 pm

MihaiC scrie:
catalinxpro scrie:incearca asta.....

Cod: Selectaţi tot

<form method='post'>
<input type='text' onchange="this.form.submit();">
</form>


De fapt e:

Cod: Selectaţi tot

<form method='post'>
<input type='text' onkeyup="functie_AJAX_pe_care_o_face_PET_citind_pe_net();">
</form>

intai incearca codu ala asa cum l-am pus eu si pe urma postezi :lol:

Avatar utilizator
Copyright
Senior Member
Mesaje: 869
Membru din: Dum Dec 17, 2006 7:24 pm
Localitate: Bucuresti
Contact:

Mesajde Copyright » Vin Mai 16, 2008 12:34 pm

@catalin
el a spus cclar ca vrea sa faca salvarea datalor asincron.
PET scrie:Vreau ca atunci cand sterg ceva dintr-un input si scriu altceva, automat sa se faca update in baza de date cu ajax.
catalinxpro scrie:<input type='text' onchange="this.form.submit();">



@Mihai
Daca folosesti onkeyup o sa omori serverul pentru ca fiecare apasare de tasta(aici intra si tab, backspace, enter...) o sa declanseze un request Ajax. Corect este sa folosesti onchange care functioneaza asemanator cu evenimentul onblur dar se declanseaza doar daca valoarea campului sa schimbat de la evenimentul onfocus.

http://www.w3schools.com/jsref/jsref_onkeyup.asp
http://www.w3schools.com/jsref/jsref_onchange.asp

Later.

Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

Mesajde PET » Sâm Mai 17, 2008 8:04 am

a zis bine Copyright.

M-am uitat pe onchange si e fix asa cum trebe. Eu scriu, selectez altceva (sau mai bine zis deselectez input-ul) si atunci sa se faca update-ul.

Inainte sa scriu functia, ma gandesc ca fiecare input trebuie sa aiba ca nume ID-ul lui, altfel o sa stie unde sa faca update la tabel. Nu?
PET - Vesnicul n00b al acestui forum :)

Avatar utilizator
Copyright
Senior Member
Mesaje: 869
Membru din: Dum Dec 17, 2006 7:24 pm
Localitate: Bucuresti
Contact:

Mesajde Copyright » Dum Mai 18, 2008 10:15 am

Sau poti sa scri id-ul direct ca parametru al functiei de update:

while(fetch resursa_mysql){
echo '<input type="text" onchange="update_field(',$row->id,', this.value);">';
}

PET scrie:Problema e ca nu stiu cum sa scriu functia de update in AJAX/Javascript.


arunca un ochi aici: http://daniel.lorch.cc/docs/ajax_simple/


Later.

Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

Mesajde PET » Dum Mai 18, 2008 3:38 pm

Copyright scrie:Sau poti sa scri id-ul direct ca parametru al functiei de update:

while(fetch resursa_mysql){
echo '<input type="text" onchange="update_field(',$row->id,', this.value);">';
}

PET scrie:Problema e ca nu stiu cum sa scriu functia de update in AJAX/Javascript.


arunca un ochi aici: http://daniel.lorch.cc/docs/ajax_simple/


Later.


Ideea e ca folosesc Smarty si nu mi-ar fi greu sa ii dau ca name {$card.id} sau ceva de genu. Acum ma uit pe linkul dat.

Ideea e ca is asa multe tutoriale, scripturi incat multe trebuie sa le adaptezi, si e destul de greu sa le adaptezi. Poate are ceva de care eu nu am nevoie si numa ma incurca, samd. Deasta prefer sa intreb ceva si sa aflu direct ceea ce vreau.
PET - Vesnicul n00b al acestui forum :)

Avatar utilizator
PET
Senior Member
Mesaje: 325
Membru din: Mie Aug 20, 2003 11:40 pm
Localitate: Timisoara
Contact:

Mesajde PET » Lun Mai 19, 2008 11:12 pm

Cod: Selectaţi tot

<script type="text/javascript">
var http = false;

if(navigator.appName == "Microsoft Internet Explorer") {
  http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
  http = new XMLHttpRequest();
}

function validate(user) {
  http.abort();
  http.open("GET", "validate.php?name=" + user, true);
  http.onreadystatechange=function() {
    if(http.readyState == 4) {
      document.getElementById('foo').innerHTML = http.responseText;
    }
  }
  http.send(null);
}
</script>

<h1>Please choose your username:</h1>

<form>
  <input type="text" onkeyup="validate(this.value)" />
  <div id="foo"></div>
</form>


Asta e codul de pe linkul postat de Copyright si as vrea daca vreti sa pargurgem codul sa inteleg si eu totul si cine mai citeste acest topic.

----------
var http = false;

Asta n-am idee ce face.

if(navigator.appName == "Microsoft Internet Explorer") {
http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
http = new XMLHttpRequest();
}


Hmm... aici stiu ca e parte acu AJAX. IE-ul floseste acel ActiveX, etc...

function validate(user) {
http.abort();
http.open("GET", "validate.php?name=" + user, true);
http.onreadystatechange=function() {
if(http.readyState == 4) {
document.getElementById('foo').innerHTML = http.responseText;
}
}
http.send(null);
}


Aceasta este functia apelata atunci cand: onkeyup="validate(this.value)"

this.value inseamna ca ia informatia din acel input. Eu pot sa folosesc this.value ca sa iau noua informatie, si apoi o trimit catre comanda SQL.


http.open("GET", "validate.php?name=" + user, true);

Asta trimite catre fisierul validate.php?name=this.value

Corect?

Eu as putea sa fac ceva de genu:

http.open("GET", "validate.php?name=" + user +"&id=" + id, true);

Nu stiu daca am scris corect deoarece nu cunosc exact punctuatia javascript. Ideea e ca vreau sa fac linkul ceva de genu:

validate.php?act=ceva&name=2&id=241

2 este noua valoare care trebuie updatata in baza de date iar 241 este ID-ul intrarii din baza de date.

Acum mai trebuie ca atunci cand "onkeyup" se face sa apara un mesaj de verificare cu OK - CANCEL. Nu vreau sa modific ceva din greseala si apoi sa nu stiu ce intrare avea. Apoi vreau sa limitez intrarile doar la numere. Daca scriu "F3" sa nu updateze deoarece "F" se gaseste in input.

Apoi trebuie sa vad cum sa obtin acel ID in functie. As putea sa dau ca name al acelui INPUT ... ID-ul din baza de date. Dar cum obtin eu in javascript id-ul acelui input?

EDIT: In loc de onkeyup o sa folosesc onchange.

Deocamdata atat. Sugestii?


mersi
PET - Vesnicul n00b al acestui forum :)


Înapoi la “Librarii Javascript”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 8 vizitatori