#php #ajax #codeigniter #select #jquery-easyui
Вопрос:
Я работаю над веб-приложением и застрял с опцией выпадающего списка в таблице или флажке. Теперь проблема в том, что я не могу понять, как выбрать единственное выбранное значение параметра в соответствии с таблицей tr table_id или флажком? Я могу получить доступ к значениям из базы данных, но не могу выбрать конкретное значение параметра в сообщении tr table_id для функции контроллера? В настоящее время функция jQuery выбирает все значения параметров строк вместе, в то время как я хочу выбрать один параметр. Мне нужна функция AJAX / jQuery, которая будет выбирать значение параметра, в частности, на основе идентификатора таблицы tr table_id или флажка. Как мне это сделать?
HTML
<table
id="tt"
class="easyui-datagrid"
url="<?php echo base_url()."contacts/contacts_list_data"; ?>"
pagination="true"
rownumbers="true"
toolbar="#tb"
pageSize="10"
pageList="[5,10,20,50,100]"
fit= "true"
fitColumns= "true"
nowrap= "true"
view= "detailview"
idField="id"
>
<thead>
<tr>
<th field="id" checkbox="true"></th>
<th field="status_type" formatter='status_column'><?php echo $this->lang->line('Status'); ?></th>
<th field="view" formatter='action_column'><?php echo $this->lang->line('Actions'); ?></th>
</tr>
</thead>
</table>
<div id="status_column" style="display:none">
<select name="stat_column" id="stat_column" class="form_control stat_column">
<option value="">Select Status</option>
<option value='All'>All</option>
<option value='Open'>Open</option>
<option value='Closed'>Closed</option>
<option value='Won'>Won</option>
<option value='Lost Price is High'>Lost Price is High</option>
<option value='Lost Not Enough Features'>Lost Not Enough Features</option>
<option value='Lost Other'>Lost Other</option>
<option value='Never Replied Back'>Never Replied Back</option>
<option value='Bad Email'>Bad Email</option>
<option value='Bad Number'>Bad Number</option>
<option value='Do Not Disturb'>Do Not Disturb</option>
</select>
</div>
Jquery
<script>
function action_column(value,row,index)
{
var str="";
str=str "<a class='btn btn-outline-warning update_button ' table-id='" row.id "'
style='cursor:pointer' title='" 'Update' "'>" ' <i class="fa fa-refresh"></i>' "</a> ";
return str;
}
</script>
<script>
function status_column(value,row,index)
{
var inputVal = document.getElementById("status_column").innerHTML;
return inputVal;
}
</script>
<script>
$(document.body).on('click', '.update_button ', function(event) {
event.preventDefault();
var table_id = $(this).attr("table-id");
var row = $(this).closest('tr');
var stateSelect = row.find('.stat_column');
$.ajax({
url: base_url 'contacts/get_status_dropdown_values',
type: 'POST',
data: {table_id: table_id},
dataType: "json",
success:function (data){
var currrentstatus = data;
$('#stat_column option[value="' currrentstatus
'"]').attr('selected', 'selected');
$(this).closest("tr").find('.stat_column option[value="' currrentstatus
'"]').attr('selected', 'selected');
}
});
});
</script>
Функция Контроллера
function get_status_dropdown_values() {
$table_id = $this->input->post("table_id",true);
$this->db->select('status');
$this->db->where("id", $table_id );
$this->db->limit(1);
$queryuser = $this->db->get('contact');
$data = $queryuser->row()->status;
echo json_encode($data);
}
Функция Jquery
//selecting all rows status dropdown value
$('#stat_column option[value="' currrentstatus
'"]').attr('selected', 'selected');
//not selecting single row status dropdown value
$(this).closest("tr").find('.stat_column option[value="' currrentstatus
'"]').attr('selected', 'selected');
Комментарии:
1. Попробуй :
row.find('.stat_column option[value="' currrentstatus '"]').attr('selected', 'selected')