$ctr = 0;
foreach($authspons as $authspons_list){
$ctr++;
echo "<input type='checkbox' id='id_list'".$ctr."'"." name='authspons[]'"." class='list_check' value='".$authspons_list->authspons_position." ".$authspons_list->authspons_lname.",".$authspons_list->authspons_fname." ".$authspons_list->authspons_mname." ".$authspons_list->authspons_cmpny.'; '."'".">" .$authspons_list->authspons_position." ".$authspons_list->authspons_lname.",".$authspons_list->authspons_fname." ".$authspons_list->authspons_mname." ".$authspons_list->authspons_cmpny."</input> <br />";
echo "<input type='text' class='text_list' id='tbox".$ctr."'"."name='authsponsid[]' value='".$authspons_list->authspons_id."; "."'"." >";
}
У меня есть сгенерированный список, поступающий из базы данных, флажки содержат личные данные, а текстовые поля содержат "идентификатор" каждого элемента в ячейках.
Это мой код jquery:
$('#list').click(function(){
var final = '';
var final2='';
$('.list_check:checked').each(function(){
var values = $(this).val();
final += values;
var val_id = $('.text_list').val();
final2 +=val_id;
});
$("#coauth").val(final);
$("#coauthid").val(final2);
$("#coauthspons").modal("hide");
});
Получение значения из флажков в порядке. Моя проблема: вывод из текстового поля всегда является последним значением количества отмеченных флажков.
Как это:
1st checkbox = 1st textbox(value="1");
2nd checkbox = 2nd textbox(value="2");
когда я проверяю два варианта, текстовое поле приводит только к:
1st checkbox = 1st textbox(value="2");
2nd checkbox = 2nd textbox(value="2");
Как получить результат каждого из ожидаемого флажка и его значения в текстовом поле?
здесь var val_id = $('.text_list').val();
вы даете одинаковое значение для всех элементов независимо от их индекса
попробуй вот так
var val_id = $(this).next().val(); //this gives value of next i.e .text_list element
$('#list').click(function(){
var final = '';
var final2='';
$('.list_check:checked').each(function(){
var raw_value = $(this).val();
var id_value = raw_value.split("||");
var values = id_value[1];
final += values;
var val_id = id_value[0];
final2 +=val_id;
});
$("#coauth").val(final);
$("#coauthid").val(final2);
//alert(final2);
$("#coauthspons").modal("hide");
});
Спасибо #Bhadra за ваш ответ. это дает мне представление, но я нашел лучшее решение своей проблемы. Я помещаю все значения в флажок, тогда я использую функцию split, чтобы отделить "ID" от исходных значений флажка (fname, mname, lname).