У меня есть идентификатор, который является идентификатором базы данных для строки, которую я хочу обновить, а затем новое значение, которое передается при нажатии клавиши ввода. То, что я хочу сделать, это назначить ячейку базы данных, которая должна быть обновлена как значение rel. На данный момент он передает только db_cell_1 независимо от того, какую ячейку я нажимаю для редактирования. Если я нажму вторую ячейку на своей html-странице, я хочу, чтобы она отправила db_cell_2. Я надеюсь, что я ясно дал понять о проблеме, с которой сталкиваюсь. Любые указатели в правильном направлении будут оценены.
HTML:
<td id="<?echo $value['ID'];?>" class="merv_editable" rel="db_cell_1" style="text-align: left;" > <?echo $value['nom_nosauk'];?></td>
<td id="<?echo $value['ID'];?>" class="merv_editable" rel="db_cell_2"><?echo $value['merv'];?></td>
JQuery:
$('.merv_editable').click(function(){
var attrval = $(this).attr('rel');
$('.merv_editable').editable('http://www.draugiem.lv',{
id : 'elementid',
name : 'newvalue',
submitdata : {pzid : attrval}
});
});
Проблема связана с использованием класса в качестве инициатора editable
вызов. Так как вы уже находитесь в одном экземпляре потенциально многих из класса (из события click одного элемента), у вас есть область действия $(this)
который ссылается только на единственный элемент, который был нажат. Затем вы можете передать этот элемент редактируемому вызову, чтобы вызвать правильный элемент, а не только первый в исходном коде.
Чтобы исправить, код просто должен ссылаться на текущий активированный элемент, ярлык которого $(this)
директивы.
$('.merv_editable').click(function(){
var attrval = $(this).attr('rel');
$(this).editable('http://www.draugiem.lv',{
id : 'elementid',
name : 'newvalue',
submitdata : {pzid : attrval}
});
});
Других решений пока нет …