PHP + Ajax - pomoć

poruka: 10
|
čitano: 2.396
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
neaktivan
offline
PHP/jQuery - Ajax - pomoć

Imam jedan problem koji ne znam riješit, pa vas molim za pomoć.

 

$(function() {
    $.get('korisnici.php',{},function(data){
       var tablica = '<table id="korisinicitab"><th width="26%">Korisničko ime</th><th width="26%">Tip</th><th width="26%">Aktivan</th><th width="10%" class="nobg"></th><th width="10%" class="nobg"></th>';
       $(data).find('korisnik').each(function(){
          tablica = tablica + '<tr>';
          tablica = tablica + '<td>' + $(this).attr('kor_ime') + '</td>' + '<td>' + $(this).attr('tip') + '</td>' + '<td>' + $(this).attr('aktivan') + '</td>' + '</td>' + '<td><button id="spremikorisnika"> Spremi </button></td><td><button id="brisikorisnika" value = "' + $(this).attr('kor_ime') + '"> Briši </button></td>';
          tablica = tablica + '</tr>';
       });
       tablica += '</table>';
       $('#korisnici').html(tablica);

         $('button#brisikorisnika').click(function() {       var kor = $(this).val();       $.post('korisnici_obrada.php',{'akcija':'brisiKor', kor_ime:kor},function(result) {                 // ovdje dohvati ažurirane podatke        });      });   });});

 

Znači, imam 2 php skripte - korisnici.php koja ispisuje korisnike u xml formatu i korisnici_obrada.php kojoj se prosljeđuje parametar kor_ime što je id_korisnika i u skripta samo obriše red iz tablice gdje je id=kor_ime.

 

Ono što bih ja htio je kad obrišem nekog korisnika da ne moram refrešat stranicu da dobijem novo stanje, već da klikom na obriši, obrišem korisnika i dobijem ažuriranu tablicu.

 

$('button#brisikorisnika').click(function() { ... });

 

Pokušao sam unutar te funkcije samo ubaciti isti kod kao gore, gdje dohvaćam podatke prvi put, ali tako radi samo kod prvog obrisanog korisnika i dalje ne ide...

 

Ništa nije tako neefektivno kao efikasno izvođenje aktivnosti koje nisu potrebne.
 
0 0 hvala 0
16 godina
neaktivan
offline
PHP + Ajax - pomoć

Probaj s ovim kodom

http://pastie.org/2003111

 

Ovo sam napamet napisao tj malo editirao tvoj kod pa ako ti ne radi nesto javi...

All religions are the same: religion is basically guilt, with different holidays.
Poruka je uređivana zadnji put sri 1.6.2011 14:18 (drnde).
 
1 0 hvala 1
17 godina
neaktivan
offline
PHP + Ajax - pomoć

Hvala care, pomogao si mi da shvatim da treba samo obrisat red iz tablice, a ne ponovno učitavat cijelu tablicu iz baze.

 

Rookie mistake {#}

Ništa nije tako neefektivno kao efikasno izvođenje aktivnosti koje nisu potrebne.
 
0 0 hvala 0
16 godina
neaktivan
offline
Re: PHP + Ajax - pomoć
Maximus kaže...

Hvala care, pomogao si mi da shvatim da treba samo obrisat red iz tablice, a ne ponovno učitavat cijelu tablicu iz baze.

 

Rookie mistake {#}

 

Trebas malo pripaziti na to kako stvaras markup, ovo tablica += ... ti mozda sad radi ok ali

bi bilo neupotrebljivo (citaj sporo) da imas malo vecu kolicinu podataka a i zauzima puno memorije.

 

All religions are the same: religion is basically guilt, with different holidays.
17 godina
neaktivan
offline
PHP + Ajax - pomoć

Gledat ću da to promjenim, još sam početnik, pa dosta stvari ne znam, hvala na savjetima... {#}

 

Imam još jedno pitanje:

http://pastie.org/2005183

 

 

Ništa nije tako neefektivno kao efikasno izvođenje aktivnosti koje nisu potrebne.
Poruka je uređivana zadnji put sri 1.6.2011 22:18 (Maximus).
 
0 0 hvala 0
14 godina
neaktivan
offline
PHP + Ajax - pomoć

možeš staviti npr:

var tmp;

$.post( ... , function(data) {

tmp = data;

});

alert(tmp);

 

$.post se izvršava asinhrono tako da je sasvim izvjesno da će se alert(tmp) izvršiti prije nego dobiješ data. Ako ti baš treba "data" izvan callback funkcije, trebalo bi nekako "čekati" da $.post završi, recimo neki setInterval ili slično.

 
1 0 hvala 1
17 godina
neaktivan
offline
PHP + Ajax - pomoć

Hm, onda to i nije baš zgodno riješenje... Da li mogu kako unutar post() metode pristupiti elementima koji su izvan nje, npr. ovom mom buttonu spremi korisnika. Ustvari trebam napravit da provjerim 'data' koji je vraćen post metodom i ako je data jednako true, promjeniti redak u tablici u kojoj je button#spremikorisnika, znači grubo napisano:

 

$('button#spremikorisnika').click(function() {
      $.post(...function() {
        if(data==true){
         //nađi button spremikorisnika, uzmi roditelja(<td>) -> uzmi roditelja(<tr>) -> nađi neki <td> i zapiši nešto u njega
          }
      });
});

 

Ništa nije tako neefektivno kao efikasno izvođenje aktivnosti koje nisu potrebne.
Poruka je uređivana zadnji put čet 2.6.2011 1:04 (Maximus).
 
0 0 hvala 0
16 godina
neaktivan
offline
Re: PHP + Ajax - pomoć
Maximus kaže...

Hm, onda to i nije baš zgodno riješenje... Da li mogu kako unutar post() metode pristupiti elementima koji su izvan nje, npr. ovom mom buttonu spremi korisnika. Ustvari trebam napravit da provjerim 'data' koji je vraćen post metodom i ako je data jednako true, promjeniti redak u tablici u kojoj je button#spremikorisnika, znači grubo napisano:

 

$('button#spremikorisnika').click(function() {
      $.post(...function() {
        if(data==true){
         //nađi button spremikorisnika, uzmi roditelja(<td>) -> uzmi roditelja(<tr>) -> nađi neki <td> i zapiši nešto u njega
          }
      });
});

 

Mozes koristiti neku svoju callback funckiju umjesto hardcodanja anonimne funckije sto je zapravo i bolji nacin po meni.

 

Vidi:

http://pastie.org/2007846

 

Posto ti je ovo asinkroni request nema smisla direktno pristupanje povratnim podacima, jednostavno pustis da ti ajax request

pozove tvoju callback funkciju kada dobije podatke, dalje radis kao normalno.

All religions are the same: religion is basically guilt, with different holidays.
Poruka je uređivana zadnji put čet 2.6.2011 12:43 (drnde).
17 godina
neaktivan
offline
PHP + Ajax - pomoć

E super, tnx... samo me zanima još kad želim sad pristupiti ovoj varijabli "var kor = $(this).val();" izvan metode button.click(), da je ok ako je unutar button.click() definiram kao globalnu "kor = $(this).val();",pa joj onda uzimam vrijednost u ovoj mojoj funkciji koju definiram izvan te metode? Probao sam tako i izgleda da radi, pa me zanima da li je to ok ili je loša praksa i postoji bolje riješenje?

Ništa nije tako neefektivno kao efikasno izvođenje aktivnosti koje nisu potrebne.
Poruka je uređivana zadnji put čet 2.6.2011 17:07 (Maximus).
 
0 0 hvala 0
16 godina
neaktivan
offline
Re: PHP + Ajax - pomoć
Maximus kaže...

E super, tnx... samo me zanima još kad želim sad pristupiti ovoj varijabli "var kor = $(this).val();" izvan metode button.click(), da je ok ako je unutar button.click() definiram kao globalnu "kor = $(this).val();",pa joj onda uzimam vrijednost u ovoj mojoj funkciji koju definiram izvan te metode? Probao sam tako i izgleda da radi, pa me zanima da li je to ok ili je loša praksa i postoji bolje riješenje?

A sad sam tek skuzio sto zapravo zelis jt. procitao do kraja pitanje ;)

 

Naravno da mozes kao sto je i napisano u onom primjeru kojeg je dao bashd.

 

All religions are the same: religion is basically guilt, with different holidays.
Poruka je uređivana zadnji put čet 2.6.2011 19:31 (drnde).
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice