2012-04-01 6 views
0

У меня есть две таблицы. Обе таблицы можно редактировать и обе таблицы должны быть ВСЕГДА же: \Синхронизация двух таблиц с jQuery

Это было не мое желание .. но клиент хочет, чтобы :-)

Так что моя проблема, мне нужно позаботиться, чтобы обе таблицы имеют одинаковое содержание ^^, как бы вы это сделали? Может быть, с jquery и json?

Любые идеи?

Я использую ASPX, JQuery, JSon и т.д. С.

Edit:.

Ok здесь информацию. Ситуация: у клиента есть таблица, где он может добавлять заказы во время выполнения. Каждый заказ - одна строка в таблице. Клиент может редактировать некоторые из входных данных в таблице. Для одной таблицы это, без проблем ... но теперь у меня должно быть две идентичные таблицы.

Итак, сценарий теперь: Таблица A и Таблица B. Пользователь добавляет, удаляет или изменяет строку в таблице a. Таблица B распознает эти изменения и синхронизирует данные.

Структура: [IMAGE LINK] [Выбрать] [Вход] [Вход] [Вход] [Вход] [Вход]

Я имею в виду, о признании изменений в таблицу, а затем клонировать всю таблицу содержимое в другую таблицу.

Лучший вариант будет:. JSON связываются с рядами :-) Но я не думаю, что его можно ;-(

+0

И демонстрация вашей надбавки? –

+0

HTML не содержит редактируемых таблиц. Вы должны предоставить нам более подробную информацию, например. как вы делаете ваши таблицы доступными для редактирования и т. д. – ThiefMaster

+0

Хотя HTML имеет «таблицы», которые могут иметь дочерние элементы 'td' с [' contentEditable'] (https://developer.mozilla.org/en/HTML/Content_Editable). –

ответ

3

Я предложил бы использовать что-то вдоль этих линий:..

$('table td').blur(
    function(){ 
     var row = $(this).closest('tr').index(), 
      col = $(this).index(), 
      table = $(this).closest('table'); 

     $('table') 
      .not(table) 
      .find('tr:eq(' + row + ')') 
      .find('td:eq(' + col + ')') 
      .text($(this).text()); 
    });​ 

JS Fiddle demo


Отредактировано на основе замечаний по ФП, что:

сво нормальный table с input не S так ничего особенного.

$('table input').blur(
    function(){ 
     var row = $(this).closest('tr').index(), 
      col = $(this).closest('td').index(), 
      table = $(this).closest('table'); 

     $('table') 
      .not(table) 
      .find('tr:eq(' + row + ')') 
      .find('td:eq(' + col + ') input') 
      .val($(this).val()); 
    });​ 

JS Fiddle demo.

Ссылки:

+0

Спасибо, Дэвид! Вот именно то, что мне нужно! Спасибо SOOOO MUCH !!! – Smokefoot

+0

Вы очень рад, я рад помочь! знак равно –

0

Держите данные в переменной JavaScript и при обновлении изменения обоих HTMLs Это общий подход и все, что я могу сказать, не видя разметку

Смежные вопросы