Записать в базу измененные поля

196
27 мая 2017, 18:25

Есть форма с заполненными полями (редактирования данных), я хочу записать в базу только те поля которые были изменены есть метод .serializeArray() который возвращает все данные, а как сделать чтобы он возвращал только те поля которые были изменены.

Пример кода:

var elements={};
$("#myform").change(function(){
    elements=$(this).serializeArray();
});
$("#myform").submit(function(){
    var order_id = $('#order_id').val();
    $.ajax({
        type: 'POST',
        url: '/index.php?route=account/order/history_edit_order',
        data:{
            "action":elements,
            "order_id":order_id
        },
        success: function(data){
            $('#test').html(data);
        }
    });
    return false;
});     
Answer 1

var elements = [], form = $("#myform"); 
 
form.on('change', event => { 
  var name = event.target.name, value = event.target.value; 
  elements = elements.filter(element => element.name !== name) 
  elements.push({name, value}); 
  console.log(elements); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<form id="myform"> 
  <input name="input1" /> 
  <input name="input2" /> 
</form>

Answer 2

Можно попробовать отфильтровать пустые поля, затем получить уже заполненные в виде массива:

//...........
$("#myform").change(function(){
    elements=$(this).find(input[type="text"]).filter(function () {
                return !!this.value;
             }).serializeArray();
});
//...........
READ ALSO
Проблема в теге &lt;script&gt;

Проблема в теге <script>

Использую UIKit на сайтеСкрипты относящиеся к выводу модального окна, для кнопок выводящихся до тега скрипт в теле документа не работают

258
Нужно сделать при клике на картинку переключение radio

Нужно сделать при клике на картинку переключение radio

Нужно при клике на картинку переключить radio-button

341