Столкнулся с проблемой, есть связанные таблицы, по типу Категория -> Товары. Когда я редактирую категорию, мне предлагается выбрать ID категории из списка товаров, для подгрузки онных.
При редактировании, я хочу ID категории подставлять автоматом, исходя из ID редактируемой записи. Пытаюсь через Javascript получить ID записи (var obj=document.getElementById('value912').value;), но в obj ничего не возвращается
2
Получить ID через Java
Автор Mr_Nuke, 14 сент. 2011 17:22
Сообщений в теме: 8
#1
Отправлено 14 Сентябрь 2011 - 17:22
#2
Отправлено 15 Сентябрь 2011 - 09:08
Не очень понял, о чем речь. Приведите скриншоты хотя бы, с комментариями. Или опишите подробнее.
#3
Отправлено 15 Сентябрь 2011 - 12:08
Есть таблица "Контрагенты", у нее есть связанная таблица "Сотрудники".
Поля таблицы "Контрагенты":
- id
- основной контакт
- id контрагента
Поля таблицы "Сотрудники":
- id
- ФИО
- id Контрагента
Задача в том, что бы в поле "основной контакт" отображались сотрудники только для данного контрагента. Постом выше, я писал о том, что поле "ID" в "Контрагенты" нельзя с связать с "ID Контрагента" в "Сотрудники". Поэтому я создаю в таблице "Контрагенты" поле "id контрагента", и связываю его с одноименным полем в сотрудниках.
В результате получается что поле "ID Контрагента" в "Контрагентах" становится списком, и предлагает мне выбрать, для какого контрагента выводить сотрудников в "основном контакте". Мне этот выбор не нужен. Нужно что бы сотрудники всегда выводились именно для конкретного контрагента.
ipb.global.registerReputation( 'rep_post_8278', { domLikeStripId: 'like_post_8278', app: 'forums', type: 'pid', typeid: '8278' }, parseInt('0') );
Поля таблицы "Контрагенты":
- id
- основной контакт
- id контрагента
Поля таблицы "Сотрудники":
- id
- ФИО
- id Контрагента
Задача в том, что бы в поле "основной контакт" отображались сотрудники только для данного контрагента. Постом выше, я писал о том, что поле "ID" в "Контрагенты" нельзя с связать с "ID Контрагента" в "Сотрудники". Поэтому я создаю в таблице "Контрагенты" поле "id контрагента", и связываю его с одноименным полем в сотрудниках.
В результате получается что поле "ID Контрагента" в "Контрагентах" становится списком, и предлагает мне выбрать, для какого контрагента выводить сотрудников в "основном контакте". Мне этот выбор не нужен. Нужно что бы сотрудники всегда выводились именно для конкретного контрагента.
ipb.global.registerReputation( 'rep_post_8278', { domLikeStripId: 'like_post_8278', app: 'forums', type: 'pid', typeid: '8278' }, parseInt('0') );
#4
Отправлено 15 Сентябрь 2011 - 13:23
Теперь понятно. Javascript здесь не нужен, используйте вычисление в поле "ID контрагента". Вычисление простейшее: return {ID}; Само поле можно скрыть уже через JS (тогда вычисление и соответственно фильтр будут выполняться, но поле не будет отвлекать внимание).
#5
Отправлено 15 Сентябрь 2011 - 15:03
Написал, не работает.
К примеру, если я пишу в поле "ID контрагента" таблицы "Контрагенты" return "12"; то он ищет сотрудника с ID=12, и в поле "Контрагенты" "ID контрагента" записывает id контрагента, который есть у сотрудника c ID = 12.
К примеру, если я пишу в поле "ID контрагента" таблицы "Контрагенты" return "12"; то он ищет сотрудника с ID=12, и в поле "Контрагенты" "ID контрагента" записывает id контрагента, который есть у сотрудника c ID = 12.
#6
Отправлено 15 Сентябрь 2011 - 15:19
Да, я неверно написал. Забыл что поле "ID контрагента" связано с таблицей Сотрудники, и соответственно должно брать id оттуда, а не напрямую из контрагента. Вычисление будет несколько сложней:
$sotr = data_table("Сотрудники","`ID Контрагента`={ID}"); return $sotr['ID'];
#7
Отправлено 15 Сентябрь 2011 - 15:44
Отлично! Все работает! Спасибо
#8
Отправлено 16 Сентябрь 2011 - 10:10
П.С. Я правильно понимаю, что создать такую связь между таблицами нельзя без вспомогательного поля "ID Контрагентра" в "Контрагентах", так как к стандартному полю ID нелья сделать тип "связь"?
#9
Отправлено 16 Сентябрь 2011 - 10:47
Фильтр в поле Сотрудники вы можете сделать только по другому полю связи, причем связанному с той же таблицей. Разумеется стандартный ID для этой цели не подходит. Приведенное решение является единственным оптимальным на текущем движке.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных