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.

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