Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa formularima i više promenljivih....

[es] :: Javascript i AJAX :: Problem sa formularima i više promenljivih....

[ Pregleda: 1265 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ivan Golubović
AV market
Požarevac

Član broj: 3154
Poruke: 586
*.dynamic.sbb.rs.

Sajt: www.AVmarket.rs


+7 Profil

icon Problem sa formularima i više promenljivih....06.01.2012. u 02:51 - pre 148 meseci
AJAX i JS su novi za mene, tako da se unapred izvinjavam ako postavljam banalno pitanje, ali stvarno nisam uspeo da pronađem rešenje...

Imam generisanu HTML tabelu sa formularima:
Code:
<td><form name="korpa_form" id="korpa_form">
                 <input name="trazeno" type="text" id="trazeno" value="1" size="2" maxlength="3" />
                 <input type="button" value="&gt;" id="dodaj_u_korpu" onclick="updKorpa();" />
                 <input name="did" type="hidden" id="did" value="<? echo $r["did"]; ?>" />              
</form></td>

I JS koji radi super kada imam samo jedno polje...
Code:
function updKorpa (){
    var did = $('#did').val();
    var trazeno = $('#trazeno').val();
    $.post('fnc_korpa.php', 
            { did: did, trazeno: trazeno }, function(blabla){
        $('#korpa').html(blabla);
    });
};


E sada problem mi je što ja mogu da imam i po 20 formulara na istoj strani i kada kliknem na neki od njih on mi doda did i trazeno od prvog formulara na stranici. Kako da rešim ovo (a da ne pišem 20 istih funkcija)?
 
Odgovor na temu

plague
Software Developer
Auckland, NZ

Član broj: 46734
Poruke: 623
77.243.20.*



+373 Profil

icon Re: Problem sa formularima i više promenljivih....06.01.2012. u 03:34 - pre 148 meseci
Moraces da osmislis jedinstveni nacin dodeljivanja ID-a ili nekog drugog atributa tim elementima kako bi mogao da im se jedinstveno obratis.
Mislim da ti ne valja sto si mesao JS i jQuery na ovakav nacin, ako vec koristis jQuery mogao bi do kraja sa njim da ides. Form tag ti je bespotreban jer AJAX prosledjuje podatke php strani, bitno je da ona zna kako da ih obradi. Mozes cak i koristiti neke druge elemente prilikom pozivanja AJAX-a kao sto su anchor ili img.

Uglavnom, ovde je vise problem logicke prirode nego relalizacione. Kada hoces da dodas neki prozivod u korpu, ti moras nekako doci do njegovog ID-a (ako se oni nalaze u bazi). Taj ID mozes cuvati u hidden polju, u <div> tagu koji obuhvata proizvod, nebitno je. Ono sto je bitno je da kada neki element pozove funkciju ti moras nekako uz pomoc njega iscupati taj podatak.
Sada, zamislimo da si napravio <input type="button" id="3434"> gde je id atribut ID tvog proizvoda. Mozes mu staviti dogadjaj onClick="f(this);" sto znaci da ce pozvati funkciju f() i da ce kao argument proslediti sam element. Dalje u funkciji ti mozes pristupiti tom elementu i pokupiti koji god podatak da je u njemu sacuvan. U ovom slucaju u njegovom ID-u se krije ID samog prozivoda.

Tvoja kreativnost je granica. Ako ti treba vise podataka, mozes imati hidden polja koja ce imati id= "3434_naziv". I kada u funckciji pokupis IDproizvoda i stavis ga u promenljivu mozes napraviti:
document.getElementByID(IDprozivoda + '_naziv').value i tako dobiti neki drugi podatak koji si sacuvao.

Tako imas funkciju koja uvek radi isto, samo u zavisnosti od pokretaca ona barata drugim podacima.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
109.121.58.*



+33 Profil

icon Re: Problem sa formularima i više promenljivih....06.01.2012. u 10:06 - pre 148 meseci
Nemoj uopšte da koristiš id-eve u tom slučaju, na elementima te forme. Dovoljno je samo da npr. svim tim formama daš neku zajedničku CSS klasu, tipa "form-korpa", i da onda samo preko jednog snippet-a kontrolišeš submit-ovanje svih formi, dakle ovako nešto:

HTML:
Code:
<form class="form-korpa" method="post" action="fnc_korpa.php">
    <input name="trazeno" type="text" size="2" maxlength="3" />
    <input name="did" type="hidden" value="<? echo $r["did"]; ?>" />  

    <input type="submit" value="&gt;" />  
</form>

JS:
Code:
$(document).ready(function() {
    $('.form-korpa').submit(function() {
        var $form = $(this);
        
        $.post($form.attr('action'), $form.serialize(), function(data) {
            $('#korpa').html(data);
        });
        
        return false;
    });
});

Obrati pažnju da je taj button sada "submit", i da form tag sada ima i "action" atribut, koji se posle u JS delu koristi kao "url" parametar za $.post().
 
Odgovor na temu

Ivan Golubović
AV market
Požarevac

Član broj: 3154
Poruke: 586
*.dynamic.sbb.rs.

Sajt: www.AVmarket.rs


+7 Profil

icon Re: Problem sa formularima i više promenljivih....06.01.2012. u 12:35 - pre 148 meseci
Hvala obojci na odgovorima.

Nikola, funkcija koju si napisao radi odlično...

plague nov sam u radu sa JS i jQuery-jem, tako da mi i nije najjasnija razlika...
 
Odgovor na temu

[es] :: Javascript i AJAX :: Problem sa formularima i više promenljivih....

[ Pregleda: 1265 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.