Получить order_id в редактируемой таблице

284
09 апреля 2017, 03:12

Есть таблица в ней поле ttn нужно что бы оно редактировалось, при клике появляется поле для изменения данных.

view

 <td><?php echo $order['order_id'];?></td>           
 <td class="edit"><?php echo $order['ttn']?></td>

$('.edit').on('click', function () {
      $(this).html("<input type='text' name='ttn' value='" + $(this).text() + "'/>");
  }).on('click', 'input', function () {
      return false;
  }).on('blur', 'input', function () {
      $(this).parent('td').text($(this).val());
      var ttn = $(this).val();
      console.log(ttn);
      $.ajax({
          type: 'POST',
          url: 'index.php?route=account/order',
          data:{"ttn":ttn},
          success: function (data) {
             // получаю отредактированные данные
          }
      });
  });

а как получить order_id, отредактированного поля.

Answer 1

а как получить order_id, отредактированного поля.

при загрузке html

.....
<td><?php echo $order['order_id'];?></td>        
.....

отдать этот атрибут строке

<tr order_id ="<?=$order['order_id'];?>" >
...<td></td>..<td></td>...
</tr>

а затем получать у строки этот атрибут, который можно использовать во многих операциях удаления, редактирования и прочее.

т.е.

 var ttn = $(this).parent().attr('order_id');
$.ajax({
          type: 'POST',
          url: 'index.php?route=account/order',
          data:{"ttn":ttn},
          success: function (data) {
             // получаю отредактированные данные
          }
      });
Answer 2

В td.edit добавляем data-order:

<td><?php echo $order['order_id'];?></td>
<td class="edit" data-order="<?php echo $order['order_id'];?>">
    <?php echo $order['ttn']?>
</td>

В js получаем его (После var tnn):

$('.edit').on('click', function () {
    $(this).html("<input type='text' name='ttn' value='" + $(this).text() + "'/>");
}).on('click', 'input', function () {
    return false;
}).on('blur', 'input', function () {
    $(this).parent('td').text($(this).val());
    var ttn = $(this).val();
    var order_id = $(this).parent('td').data('order'); // Здесь твой ордер
    // var order_id = $(this).parent('td').prev('td').text(); // без data-order, но менее надежно, т.к. если изменить порядок td тегов, то prev('td') вернет другое значение.
    console.log(ttn);
    $.ajax({
        type: 'POST',
        url: 'index.php?route=account/order',
        data:{"ttn":ttn},
        success: function (data) {
           // получаю отредактированные данные
        }
    });
});
Answer 3

Толком вопроса не понял (новичок я), но если проблема в "после загрузки", то вот тема...

window.addEventListener("load", test, false);
function test() {
    alert('test');
}

Таким образом загрузятся все динамо данные и можно парсить дальше.

И главное завязывай с Jquery.

READ ALSO
нужен скрипт для интернет магазина! у меня все товары дублируется

нужен скрипт для интернет магазина! у меня все товары дублируется

Необходимо сделать скрипт, который сможет автоматически задавать нужные классы элементамДля четных элементов - fl, а для нечетных - fr Сейчас...

272
SQL запрос на выборку из двух таблиц

SQL запрос на выборку из двух таблиц

Существует две таблицы: dialog(id,firstname) и message(id, dialog_id, text, time)Необходимо выбрать все записи dialog, при этом к каждой записи dialog выбрать последнюю...

395
Разница во времени на Java

Разница во времени на Java

Как задать 2 даты и посмотреть сколько времени между ними прошло

376
Как в WebView загрузить картинку из памяти?

Как в WebView загрузить картинку из памяти?

Создаю картинку вот так:

360