Сохранить данные строки из редактируемой сетки данных jeasyui в базу данных

У меня проблема, когда я создаю строку редактирования datagrid jeasyui (не edatagrid), когда я сохраняю строку, данные не поступают в базу данных.

function updaterow(target){$("#dataGrid").datagrid("refreshRow",getRowIndex(target));

      var data={                             
            "pos_name":row.pos_name,
            "pos_iis":row.pos_iis,
            "pos_cat":row.pos_cat,
                   "pos_sales":row.pos_sales

          };
        var saveurl="module/emp-position/mod-update.php?&id="+row.id;
       $.ajax({
              type:"post",
              url:saveurl,
              data:data,
             success:function(result){
                   if(data.success){
                            return data;
                                           $('#dataGrid').datagrid('reload');
                           }
                  }
         });}

Я надеюсь, что кто-то может помочь решить мою проблему


person alfian deny    schedule 08.01.2019    source источник
comment
Добро пожаловать в Stack Overflow. Поскольку мы не можем проверить детали AJAX, нам нужно, чтобы вы просмотрели их в своем браузере. Используя инструменты браузера, найдите в разделе веб-разработчика Сеть. это должно показать все HTTP-запросы. Затем протестируйте свой сценарий обновления и посмотрите, какие данные отправляются в сценарий и из него. Пожалуйста, отредактируйте свой пост и включите эти данные. Вы также захотите проверить консоль, чтобы увидеть, есть ли какие-либо предупреждения или ошибки.   -  person Twisty    schedule 08.01.2019


Ответы (1)


Я подозреваю, что проблема связана со следующим фрагментом кода.

success:function(result){
  if(data.success){
    return data;
    $('#dataGrid').datagrid('reload');
  }
}

Здесь две вещи неверны:

  • Функция передается result, но вы вызываете data, это будет undefined
  • Вы выполняете return, никакой другой код не будет обработан, поэтому ваш вызов 'reload' не будет выполнен.

Попробуйте следующее:

success: function(result){
  if(result.success){
    $('#dataGrid').datagrid('reload');
  }
}

Обратный вызов success обычно не требует возврата, но не должен, если вы выберете return result. Данные передаются в обратный вызов успеха с использованием result, определенного вами. Итак, внутри вашей функции вам нужно использовать result для доступа к возвращаемым данным.

Надеюсь, это поможет.

person Twisty    schedule 08.01.2019
comment
Спасибо, но все равно не могу, возможно, моя кодировка была неправильной с самого начала. извините, я все еще новичок в jeasyui. данные по-прежнему не хотят поступать в базу данных. если вы хотите, если у вас есть пример использования редактируемого сохранения данных в базе данных, он может быть использован для моего учебного материала. - person alfian deny; 09.01.2019