Перейти к содержимому


как сразу подставить "компанию" при добавлении "контактного лица"


Сообщений в теме: 11

#1 tel

    Активный участник

  • Пользователи
  • PipPipPip
  • 187 сообщений

Отправлено 14 Декабрь 2010 - 00:32

как при нажатии ”добавить контактное лицо” http://awesomescreenshot.com/0724n9318 - сделать так, чтобы при открытии карточки - в поле компании уже стояла, та - из которой мы нажимали. сейчас там пусто http://awesomescreenshot.com/0e54n9b7a

код у нас в доп действиях такой
echo "<script>location.href='".$config["site_root"]."/view_line.php?table=79&rel_table=42&rel_value=44&line=new'</script>";

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 14 Декабрь 2010 - 09:47

Вы открываете новую запись, в ней разместить какие-либо данные заранее невозможно. Вам необходимо вначале добавить в базу строку с необходимыми вам данными (через функцию insert_query), и уже затем перейти непосредственно к этой записи.

#3 tel

    Активный участник

  • Пользователи
  • PipPipPip
  • 187 сообщений

Отправлено 19 Декабрь 2010 - 19:11

а можно чуть подробнее - какой скрипт повесить на кнопку с вычислениями?

#4 jazvenko

    Активный участник

  • Пользователи
  • PipPipPip
  • 224 сообщений

Отправлено 19 Декабрь 2010 - 21:59

Просмотр сообщенияtel (19.12.2010, 19:11) писал:

а можно чуть подробнее - какой скрипт повесить на кнопку с вычислениями?

$card1 = data_table("Таблица из которой берем","id={ID}");

$card2 = array(
'компания' => $card1['компания'],
'ещё' => 'ещё' //добавляем те поля которые ещё будут нам нужны
);
$id = insert_query($card2,"Таблица в которой создаем запись");
echo "<script>location.href='".$config["site_root"]."/view_line.php?table=4&line=".$id."&edit_mode'</script>";


#5 ildar_sh

    Новичок

  • Пользователи
  • Pip
  • 4 сообщений

Отправлено 21 Январь 2011 - 17:32

Здравствуйте.
Описанный Вами способ (создать запись в дочерней таблице, заполнить поля, и отправить на редактирование) можно организовать, но при этом в таблице контактные лица могут появится записи "призраки", например менеджер передумает сохранять контактное лицо, и не заполнив поля закроет форму ввода. Нужно другое решение.

Хотел уточнить вопрос topic startera.
У нас есть две таблицы. "Компании" и "Контактные лица". В таблице "Компании" есть поле типа связь "Контактное лицо".
В свою очередь в таблице "Контактные лица" есть поле типа связь "Компания"
Необходимо организовать удобное создание контактного лица при редактировании Компании.
Стандартными средствами контактное лицо привязывается к компании следующими действиями:
0. Просматриваем Компанию.
1. Переходим по ссылке "Контактные лица" в разделе "Связанные таблицы".
2. Жмем кнопку "Добавить Запись"
при этом открывается новая запись таблицы "Контактные лица" где в поле "Компания" указана компания которую мы редактировали.

Пробывал организовать создание контактного лица компании одним кликом, для этого в разделе "Дополнительные действия" создал кнопку "Добавить контактное лицо", в разделе вычилсения php добавил код:
echo "<script>location.href='".$config["site_root"]."/view_line.php?table=79&rel_table=42&rel_value={ID}&line=new'</script>";
Этот код выполняет переход по ссылке, аналогично пункту 2, когда мы делаем все вручную.

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

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 21 Январь 2011 - 19:25

Просмотр сообщенияildar_sh (21.1.2011, 17:32) писал:

При этом желаемого результата я не достиг, поле "Компания" на открывшейся странице бывает пустым, а иногда заполнено др. компанией, не той что нужно
И не достигните таким путем, т.к. поле Компания появляется при добавлении записи по данной ссылке только если в таблице "Контактные лица" включен фильтр по этому полю. Если фильтр не активен, или активен по другой компании - соответсвенно нужного результата вы не получите.


Что касается

Просмотр сообщенияildar_sh (21.1.2011, 17:32) писал:

Описанный Вами способ (создать запись в дочерней таблице, заполнить поля, и отправить на редактирование) можно организовать, но при этом в таблице контактные лица могут появится записи "призраки", например менеджер передумает сохранять контактное лицо, и не заполнив поля закроет форму ввода
то я с Вами полностью согласен, но ранее насчет я этого писал что если

Просмотр сообщенияРазработчик (14.12.2010, 9:47) писал:

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

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

echo "<script>location.href='".$config["site_root"]."/view_line.php?table=79&line=new&f000={ID}'</script>";
где 000 - id поля Компания в открываемой таблице (как узнать id поля, можно прочесть в документации). Таким образом вы можете заранее задать любое кол-во полей в добавляемой записи без ее предварительного сохранения.

#7 Сергей

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 27 Январь 2011 - 10:18

У меня тоже есть вопрос.
При добавлении "подразделения" в "компанию", "компанию" необходимо выбрать из списка.
На таблицу"компания" добавил дополнительное действие "Добавить подразделение" вставил туда вычисление
echo "<script>location.href='".$config["site_root"]."/view_line.php?table=107&line=new&Компания={ID}'</script>";
в итоге по нажатию кнопки "Добавить подразделение" отображается страница "добавления подразделения" и запрос в строке типа:
/view_line.php?table=107&line=new&Компания=8.
Вопрос, как сделать так чтобы при загрузке страницы в объекте "список" по умолчанию уже была выбрана моя компания с id=8, который отобразился в URL.
если писать чисто на РНР знаю как это сделать, запускаю цикл и смотрю: при заполнении объекта "список" если id моей компании из таблицы будет равно id пришедшего из URL (у меня &Компания=8) тогда присваиваю позиции в список значение selected и без проблем.
Как я понимаю, надо на поле список в таблице написать вычисление, но немного затрудняюсь в этом. Подскажите пожалуйста.

#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 27 Январь 2011 - 10:50

Просмотр сообщенияСергей (27.1.2011, 10:18) писал:

Компания={ID}
Вы видимо не совсем верно поняли мой пост выше. В ссылке необходимо задавать не имя поля, а его внутреннее представление:

Просмотр сообщенияРазработчик (21.1.2011, 19:25) писал:

echo "<script>location.href='".$config["site_root"]."/view_line.php?table=79&line=new&f000={ID}'</script>";
где 000 - id поля Компания в открываемой таблице (как узнать id поля, можно прочесть в документации)


#9 Сергей

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 27 Январь 2011 - 11:34

Возможно. Сейчас еще раз перечитаю документацию!

#10 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 27 Январь 2011 - 12:20

Просмотр сообщенияСергей (27.1.2011, 11:34) писал:

Возможно. Сейчас еще раз перечитаю документацию!
Конкретно по id полей и таблиц см. 4 раздел, 2 абзац, начиная с фразы "Но через упрощенную функциональность..."

#11 NeChestniy

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 08 Март 2015 - 17:02

Подскажите пожалуйста, как при создании новой записи по доп. действию в несвязанной таблице подставлять в определенные поля значения из текущей таблицы?
Перепробовал следующие варианты:
echo "<script>location.href='".$config["site_root"]."/view_line.php?table=79&line=new&f000=f000'</script>";
echo "<script>location.href='".$config["site_root"]."/view_line.php?table=79&line=new&f000='f000''</script>";
echo "<script>location.href='".$config["site_root"]."/view_line.php?table=79&line=new&f000=['f000']'</script>";
echo "<script>location.href='".$config["site_root"]."/view_line.php?table=79&line=new&f000=['ФИО']'</script>";
и т.д.

#12 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 09 Март 2015 - 14:54

Во-первых, это у вас не создание новой записи, а переход на страницу добавления новой записи, это разные вещи. Во-вторых, любые значения из текущей записи содержатся в переменной $line, например $line['ФИО']. Читайте документацию, там это все есть, не стоит придумывать свои варианты.





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных