Hy_ok
@Hy_ok

Почему после перезаписи в таблицу, не выбирается нужный option в select?

В общем такая проблема, есть страница на ней реализована сортировка, данные все получаем все нормально это работает) есть кнопка отправки на печать, вот если мы не сортируем данные, тоесть до сортировки , при отправки этих данных на печать все нормально отправляеться, тоесть нужный option из select, но когда мы отсортировали данные, на странице все нормально нужный option выбран, но отправляем весь текст из таблицы и получаем первый option а не тот который нужно.
jQuery("#sort-application").click(function(){
    date = jQuery('input[name=date]').val();
    if(date == null){date = "";}
    type_app = jQuery('select[name="type_app"]').val();
    type_job = jQuery('select[name="type_job"]').val();
    status = jQuery('select[name="status"]').val();
    if(jQuery('input[name="not-type-app"]').prop("checked")){not_type_app = 1;}else{not_type_app = "";}
    if(jQuery('input[name="not-type-job"]').prop("checked")){not_type_job = 1;}else{not_type_job = "";}
    if(jQuery('input[name="not-status"]').prop("checked")){not_status = 1;}else{not_status = "";}
    //alert(date);
    //console.log(date,type_app,type_job,status);
    jQuery.ajax({
        type: 'POST',
        url: "/ajax-sort/",
        data: {
            "date" : date,
            "type_app" : type_app,
            "type_job" : type_job,
            "status" : status,
            "not_type_app" : not_type_app,
            "not_type_job" : not_type_job,
            "not_status" : not_status
        },
        success: function(data){
            jQuery("#data-app").empty();
            jQuery("#data-app").append("<tr>"
                +"<th>Номер заявки</th>"
                +"<th>Адрес и заявитель</th>"
                +"<th>Тип заявки</th>"
                +"<th>Вид работы</th>"
                +"<th>Исполнители</th>"
                +"<th>Описание</th>"
                +"<th>Дата заявки</th>"
		        +"<th>Статус</th>"
		        +"<th></th>"
            +"</tr>");
            jQuery.each(data, function(){
                
                jQuery("tbody#data-app").append("<tr>"
                +'<td data-label="Номер заявки">'+this.id+'</td>'
                +'<td data-label="Адрес и заявитель">'+this.name_street+' д.'+this.home+' кв.'+this.apartament+'<br>'+this.name_sobs+'<br> тел:'+this.phone+'  <br> e-mail:'+this.email+' </td>'
                +'<td data-label="Тип заявки">'+this.type_application+'</td>'
                +'<td data-label="Вид работы">'+this.type_of_work+'</td>'
                +'<td data-label="Исполнители">'+this.user1+'<br>'+this.user2+'</td>'
                +'<td data-label="Описание и заметка">'+this.description+'<br>Заметки:'+this.note+'</td>'
                +'<td data-label="Дата заявки">'+this.date+'</td>'
                +'<td data-label="Статус">'
                    +'<select name="status-app" id="'+this.id+'">'
                        +'<option value="1" >Новая</option>'
                        +'<option value="2" >В работе</option>'
                        +'<option value="3" >Выполнена</option>'
                        +'<option value="4" >Отменена</option>'
                    +'</select>'
                    +'<p id="message-'+this.id+'" class="msg-st"></p>'
                +'</td>'
                +'<td data-label="Редактирование">'
                    +'<a id="add-applic" href="#add-application" data-id="'+this.id+'" onclick="editApplication(this)" class="button edit-app" title="Редактировать">'
                        +'<i class="fa fa-pencil-square-o"></i>'
                    +'</a>'
                +'</td>'
                +"</tr>");
                $('#'+this.id+' option[value='+this.status+']').prop('selected',true);
            });
        },
    });
});

//Функция JS для создания страницы печати
function atoprint(aId) {
    
    
    var atext = jQuery('#'+aId).html();//document.getElementById(aId).innerHTML;
    var captext = window.document.title;
    var alink = window.document.location;
    var prwin = open('');
    prwin.document.open();
    prwin.document.writeln('<html><head><title>Версия для печати<\/title><link rel="stylesheet" href="/assets/css/print.css" /><\/head><body text="#000000" bgcolor="#FFFFFF"><div onselectstart="return false;" oncopy="return false;">');
    prwin.document.writeln('<div style="margin-bottom:5px;"><a href="javascript://" onclick="window.print();">Печать<\/a> • <a href="javascript://" onclick="window.close();">Закрыть окно<\/a><\/div><hr>');
    prwin.document.writeln('<h1><\/h1>');
    prwin.document.writeln('<table><tbody>'+atext+'</tbody></table>');
    prwin.document.writeln('<div style="margin-top:5px;"><a href="javascript://" onclick="window.print();">Печать<\/a> • <a href="javascript://" onclick="window.close();">Закрыть окно<\/a><\/div>');
    prwin.document.writeln('<\/div><\/body><\/html>');
  }
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
Hy_ok
@Hy_ok Автор вопроса
Сам решил проблему, вместо этого
$('#'+this.id+' option[value='+this.status+']').prop('selected',true);

надо было это
$('#'+this.id+' option[value='+this.status+']').attr('selected',true);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы