Несколько форм на одной странице или нет имен форм???

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

Прошу помощи...

#1 16 июня 2015 в 10:49
Добрый день! Так как вплотную сейчас занимаюсь переносом CRM (самописной на другой основе писал ранее) предприятия на новый двиг на основеинстант2 появилось куча вопросов.
1)Нет возможности поставить переменную название формы, в связи с этим простые джафа скрипты с формами не работают.
2) Нет простоты внедрения своей формы для обработки запросов.
3) Хочется увидеть примеры по вставке стандартными средствами информации с формы в несколько баз данных, а не в одну. т.е. может кто решал проблему когда с одной формы надо разнести в 2-5 баз.
Я про параметр return $this->insert('abonent', $abonent);



Если по какому-то пункту где-то есть инфа просьба направить туды ссылкой или помочь разобрать.
#2 16 июня 2015 в 11:35

1)Нет возможности поставить переменную название формы, в связи с этим простые джафа скрипты с формами не работают.

kirkr
в файле \templates\default\assets\ui\form.tpl.php своего шаблона ставьте какую хотите переменную в название формы (строка примерно 22)

2) Нет простоты внедрения своей формы для обработки запросов.

kirkr
Пока нет. Так как нет конструктора форм в двойке. Есть лишь сторонние разработки.

3) Хочется увидеть примеры по вставке стандартными средствами информации с формы в несколько баз данных, а не в одну. т.е. может кто решал проблему когда с одной формы надо разнести в 2-5 баз.

kirkr
Не совсем понял про какие именно формы идёт речь, если про админку, то там пока сложно что-то поменять, если про фронт, то сторонними разработками и навешиванием событий, это можно решить.
#3 16 июня 2015 в 11:43

Не совсем понял про какие именно формы идёт речь, если про админку, то там пока сложно что-то поменять, если про фронт, то сторонними разработками и навешиванием событий, это можно решить.

Loadырь

Например есть форма, в ней строки фио, адрес, услуги и т.п.

Допустим фио и адрес в одну таблицу вписать надо, а услуги и фио в другую. Но выполнив стандартными средствами ICMS2.
Выше я и привел пример из model.php
#4 16 июня 2015 в 11:43

в файле \templates\default\assets\ui\form.tpl.php своего шаблона ставьте какую хотите переменную в название формы

Loadырь
это глобальная переменная получиться, а не на каждую форму своя.
#5 16 июня 2015 в 11:55

это глобальная переменная получиться

kirkr
нет если передать её в качестве атрибута в нужной вам форме
  1. <?php
  2. $this->renderForm($form, $field, array(
  3. 'action' => '',
  4. 'name' => 'чего-то_с_чем-то',
  5. 'method' => 'post'
  6. ), $errors);
  7. ?>
#6 16 июня 2015 в 12:44
Да получилось. помимо темплейта вывода формы добавляя переменную,

Надо в form.tpl.php

там где надо вывести переменную использовать name="<?php echo $attributes[name]; ?>"
т.к. передаются аттрибуты.

Спасибо с этим понятно стало.
примерно так:

  1. <form action="<?php echo $attributes['action']; ?>"
  2. method="<?php echo $method; ?>"
  3. name="<?php echo $attributes['name']; ?>"
  4. <?php if ($is_ajax){ ?>
  5. class="modal"
  6. onsubmit="return icms.forms.submitAjax(this)"
  7. <?php } ?>
Остается только вопрос по вставке в разные таблицы базы данных.
#7 16 июня 2015 в 13:15

3) Хочется увидеть примеры по вставке стандартными средствами информации с формы в несколько баз данных, а не в одну. т.е. может кто решал проблему когда с одной формы надо разнести в 2-5 баз.
Я про параметр return $this->insert('abonent', $abonent);

kirkr

Остается только вопрос по вставке в разные таблицы базы данных.

kirkr
Если речь ведется про разные таблицы одной базы данных, то проблем нет — вставили часть данных в одну таблицу, затем оставшиеся — в другую. По феншую, если все это отрабатывает через model.php — в разных функциях происходит запись в разные таблицы. Если хотите что-то return'ить то предварительно результат записываете в промежуточную переменную которую потом и возвращаете.
#8 16 июня 2015 в 13:24

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

kirkr
все таки в таблицы или разные базы?
Если в таблицы, то в чем проблема создать в model.php несколько запросов к разным таблицам, а уже в экшне писать в несколько таблиц?

P/s/ уже ответили выше.
#9 16 июня 2015 в 13:34
В одну БАЗУ, но разные таблицы.
Примерно так можно
  1. public function addAbonent($abonent){
  2.  
  3. return $this->insert('abonent', $abonent);
  4.  
  5. }
т.е. ретурнов хоть сто… я правильно понял?
Единственное правило передавать такое же количество переменных, что и в таблице столбцов?
#10 16 июня 2015 в 13:41

т.е. ретурнов хоть сто… я правильно понял?

kirkr
ретурн один,

  1.  
  2. public function addAbonent($abonent){
  3.  
  4. $id1 = $this->insert('abonent1', $abonent);
  5. $id2 = $this->insert('abonent2', $abonent);
  6. $id... = $this->insert('abonent....', $abonent);
  7.  
  8. return true;
  9.  
  10. }
#11 16 июня 2015 в 13:43

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

kirkr
И да и нет! smile
return делает выход из функции и возвращает данные в код вызывающий вашу функцию. Т.е. как только ваш код отработает до ретурн дальнейшее выполнение кода в текущей функции прекратиться.

И про переменные для БД. Их количество не обязательно должно совпадать с числом столбцов в таблице БД. Например если вы задали каким либо столбцам автозначения, то можно не передавать в них данные, они сами собой заполнятся! joke
#12 16 июня 2015 в 13:49
Спасибо! разжевали, теперь я очухался от жары и все стало понятно =)
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.