- jQuery еднакви стойности при submit
WT форуми -> HTML / Javascript / CSS -> jQuery еднакви стойности при submit
Създайте нова тема Напишете отговор 
Автор Съобщение
redbulldog
Нов
Нов

Регистриран на: 20/04/2010 2:11 pm

Support: 0
Bonus: 0
Мнения: 52
Мнение 13/03/2018 11:58 pm     jQuery еднакви стойности при submit Отговорете с цитат


Здравейте. Изправям се пред голям проблем, тъй като не пиша на Java Script, а ми се налага да направя нещо малко, което обаче ми скъса нервите. Моля Ви някой ако има идея как да оправя нещата ще съм много благодарен за помощ.

Имам една таблица с неопределен брой редове за която се генерират автоматично бутони

HTML code:
<button type="button" class="btn btn-pid btn-sm btn-kv btn-default btn-outline-secondary" title="Make primary" data-key="16">P</button>


Като за всеки ред на data-key се слага за стойност съответното ID.


Javascript code:
$(document).ready(function () {
$(function() {
$('.btn-pid').click(function() {
var pid = $(".btn-pid").attr('data-key');
$.post('/pages/default/photo/'+pid,
function(response,status){
alert("Response : " + response+"\n\n Status : " + status+" ID:"+pid);.
});
});
});
});


Идеята е като се кликне на даден ред тази стойност 16 (например) да се събмитне към URL, написан горе и ID-то се лепва отзад, като POST заявката е без нищо. Просто празна заявка към въпросният адрес с индекс накрая.

Проблема е обаче, че изпраща само първото ID. И винаги независимо къде се клика надолу, то винаги изпратеното ID е първото.

Например ако имам

HTML code:
<button type="button" class="btn btn-pid btn-sm btn-kv btn-default btn-outline-secondary" title="Make primary" data-key="16">P</button>
<button type="button" class="btn btn-pid btn-sm btn-kv btn-default btn-outline-secondary" title="Make primary" data-key="17">P</button>
<button type="button" class="btn btn-pid btn-sm btn-kv btn-default btn-outline-secondary" title="Make primary" data-key="18">P</button>


то винаги това, което получава js е 16.

Нямам представа къде бъркам.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 350
Bonus: 698
Мнения: 2644
Мнение 14/03/2018 10:46 am      Отговорете с цитат


Проблема ти е в този ред:

var pid = $(".btn-pid").attr('data-key');


Трябва да използваш $(this), за да вземеш атрибута data-key на бутона, който СИ КЛИКНАЛ. По твоя начин взима първия бутон в ДОМ дървото, което е с този клас.

Също така може да ползваш .data().

$(document).ready(function() {
  $(function() {
    $('.btn-pid').click(function() {
      var pid = $(this).data('key');
      $.post('/pages/default/photo/' + pid, function(response, status) {
        alert("Response : " + response + "\n\n Status : " + status + " ID:" + pid);.
      });
    });
  });
});
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
redbulldog
Нов
Нов

Регистриран на: 20/04/2010 2:11 pm

Support: 0
Bonus: 0
Мнения: 52
Мнение 14/03/2018 11:04 am      Отговорете с цитат


Много блаодаря!!! Спасихте ми живота Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> HTML / Javascript / CSS Часовете са според зоната GMT + 2 Часа
Страница 1 от 1


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети