Pereiti prie turinio

Kaip pritaikyti Ajax daugeliui įvairių id esančių puslapyje


Rekomenduojami pranešimai

Sveiki,

prireikė bežaidžiant prie php pavartoti Ajax.

 

jQuery(document).ready(function($) {
$('#drpc_add_to_collection').click(function(e) {
	$.post(document.location.protocol+'//'+document.location.host+'/wp-admin/admin-ajax.php', drAjax, function(response) {
		$('#drpc_add_to_collection_div').html('This bean added to DB');
	})
});
});

 

Šis Ajax kodas paspaudus ant nuorodos su id='drpc_add_to_collection' į duombazę įrašo man reikalingus duomenis.

Deja HTML nepriimtina viename puslapyje užkrauti kelis elementus su tuo pačiu id. Todėl prie kiekvieno id norėčiau prirašyti kiekvieno straipsnio ID, kad būtų pvz: drpc_add_to_collection-47; drpc_add_to_collection-48 ir pan.

 

Bet kaip dabar padaryti, kad Ajax'e būtų šitos dalies $('#drpc_add_to_collection') priklausomybė nuo pasirinkto id?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Yra tarkim straipsnių srautas pagrindiniame puslapyje.

 

po kiekvienu straipsniu linkas, kurį paspaudus, noriu, kad į duombazę įsirašytų to konkretaus straipsnio ID.

 

Kad linkas būtų unikalus padaryti nesunku, tai atrodytų taip:

 

<span class="add_to_db_div"><a class="add_to_db" id="add_to_db-33" href="#">Add to Collection</a></span>
<span class="add_to_db_div"><a class="add_to_db" id="add_to_db-39" href="#">Add to Collection</a></span>
<span class="add_to_db_div"><a class="add_to_db" id="add_to_db-125" href="#">Add to Collection</a></span>

 

Skaičiukai gaunami php prirašius kodą:

<a id="add_to_db-'.$post->ID.'">

 

Dabar mano klausimas, kaip padaryti, kad jQuery paspaudus tarkim ant liko trečio suprastu ant kurio tiksliai linko paspaudžiau.

jQuery(document).ready(function($) {
       $('.add_to_db').click(function(e) {
               $.post(document.location.protocol+'//'+document.location.host+'/wp-admin/admin-ajax.php', drAjax, function(response) {
                       $('.add_to_db_div').html('This bean added to DB');
               })
       });
});

Nes jei padarau priklausomą nuo klasės (.), tai jis nelabai supranta, ką daryti ir praktiškai į DB įrašo pirmą puslapyje rastos tos klasės duomenis. Kaip padaryti tą jQuery kodą priklausomą nuo individualaus id. Kažkokius kintamuosius jam į kodą prirašyti reikia?

 

Gal jau šį kartą tinkamiau sugebėjau paaiškinti?

Redagavo d2b
Nuoroda į pranešimą
Dalintis kituose puslapiuose

jQuery(document).ready(function($) {
$('.add_to_db').click(function(e) {
	var id = $(this).attr('id');
	id = id.split('-')[1];
	$.post(document.location.protocol+'//'+document.location.host+'/wp-admin/admin-ajax.php', drAjax, function(response) {
		$('.add_to_db_div').html('This bean added to DB');
	})
});
});

 

Tik padebugink, ar tirkai skaičiuką gražina, gal ne [1], o [0] reik nurodyti, nepamenu, kaip veikia tiksliai tas split

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nu krč.. įdomiais keliais jūs čia einat :lol:

 

<a class="add_to_db" data-like="33" href="#">Add to Collection</a>
<a class="add_to_db" data-like="39" href="#">Add to Collection</a>
<a class="add_to_db" data-like="125" href="#">Add to Collection</a>

 

+

 

jQuery(document).ready(function($) {
       $('.add_to_db').click(function(e) {
               var id = $(this).attr('data-like');
               console.log('Clicked on:' + id);
       });
});

 

Viskas, gauni ID, darai su juo ką nori. Jei nori persiduoti į WordPress'inį admin-ajax.php tai reikėtų pridėti elementą į drAjax objektą (dabar realiai net nesimato, iš kur pas tave ateina tas drAjax)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tokiems dalykams HTML5 yra data-* atributai. wicked beveik gerai viską parašė, tik dar vietoj

var id = $(this).attr('data-like');

gali naudoti tam tikslui jQuery esančią

var id = $(this).data('like');

 

O dėti post'o ID į html'inį id atributą ir paskui jį apdoroti (split'inti ir pan.) yra negerai dėl daugybės priežasčių. Bet neišsiplėskime :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...