data current row of hidden column after editing
data current row of hidden column after editing
nikishin
Posts: 4Questions: 2Answers: 0
Hi all. I have a dynamic table with different number of columns. Some columns are hidden. When I edit cells I am unable to get the cell data. This design sees only visible cells. how to access hidden columns?
$(document).on('click','#Save',function()
{
var sql_string="";
var columns = [];
var currentRow=$(this).closest("tr");
var count_rows = document.getElementById('example').rows[0].cells.length;
for (i = 0; i < count_rows; ++i)
{
if (i>3)
{
start = currentRow.find("td:eq("+(i+1)+")").text().substring(0,5);
if (start == "")
{
start = "00:00";
}
end = currentRow.find("td:eq("+(i+1)+")").text().substring(6,11);
if (end == "")
{
end = "00:00";
}
sql_string = sql_string + "UPDATE `Working_hours_plan` SET `start_time`='"+start+"',`end_time`='"+end+
"' WHERE `id`="+currentRow.find("td:eq("+i+")").text()+";";
i = i + 1;
}
}
alert(sql_string);
$.ajax({
method: "POST",
url: "Workdays_spec_update_plan.php",
data: { sql_string : sql_string,},
success: function(data)
{
if (data)
{
alert("ok ");
}
else
{
alert("not ok");
}
}
});
$(this).closest('tr').find('[name="noneditable"]').hide('fast');
$(this).closest('tr').find('[name="editable"]').show('fast');
var currentTD = $(this).parents('tr').find('td');
$.each(currentTD, function ()
{
if (i>4)
{
$(this).prop('contenteditable', false)
}
i = i +1;
});
});
Edited by Kevin: Syntax highlighting. Details on how to highlight code using markdown can be found in this guide
Answers
this solution sees hidden fields but does not display edited data
I might be missing it but how are you updating the table cells? For Datatables to know about the updates you will need to use Datatables APIs. See this FAQ.
Kevin
I set contenteditable
$(document).on('click','#Edit',function()
{
i = 1;
var currentTD = $(this).parents('tr').find('td');
$.each(currentTD, function ()
{
if (i>4)
{
$(this).prop('contenteditable', true)
}
i = i +1;
});
$(this).closest('tr').find('[name="noneditable"]').show('fast');
$(this).closest('tr').find('[name="editable"]').hide('fast');
var currentRow=$(this).closest("tr");
currentRow.find("td:eq(5)").focus();
});