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


Как при нажатии на кнопку в "дополнительном" появлялась форма php?


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

#1 mahmud

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

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

Отправлено 17 Октябрь 2012 - 10:24

Как сделать при нажатии на кнопку в дополнительном появлялась форма?

#2 CbCoder

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

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

Отправлено 17 Октябрь 2012 - 10:41

Если вы про кнопку доп.действия, то вся информация есть в документации: http://clientbase.ru...r_admin_16/dop/

#3 mahmud

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

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

Отправлено 17 Октябрь 2012 - 13:01

Просмотр сообщенияCbCoder (17 Октябрь 2012 - 10:41) писал:

Если вы про кнопку доп.действия, то вся информация есть в документации: http://clientbase.ru...r_admin_16/dop/
я прочитал и сделал все что сделано, но при нажатии на кнопку у меня не открываеться новая форма, как сделать????? Срочно нужно

#4 Гость_Roman_*

  • Гости

Отправлено 17 Октябрь 2012 - 15:29

В настройках доп. действия устанавливаете выполнение в новом окне, а в вычислениях пишите свой код с необходимой Вам формой. Что именно у Вас не получается?

#5 mahmud

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

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

Отправлено 18 Октябрь 2012 - 06:39

Просмотр сообщенияRoman (17 Октябрь 2012 - 15:29) писал:

В настройках доп. действия устанавливаете выполнение в новом окне, а в вычислениях пишите свой код с необходимой Вам формой. Что именно у Вас не получается?

Я сделал как вы сказали но я хочу чтоб дополнительное отображался на экране над таблицей.
И это события касалась всех полей.
А при выборке доп.действия -> во всплывающем окне -> он работает только когда мы заходим в отдельную строку.
Как еще можно реализовать это?
Очень прошу, срочно нужно...

#6 Гость_Roman_*

  • Гости

Отправлено 18 Октябрь 2012 - 08:26

Ставите выполнение в текущем окне, а в вычислении в конце ставите принудительное завершение скрипта, например:
if ($_POST['field'])
  {
	// Ваш код обработки



  }
else
  {
    echo "<form>";
    echo "<input type='text' name='field' />";
    echo "<input type='hidden' name='op_sel' value='additional' />";
    echo "<input type='hidden' name='button_id' value='".$_POST['button_id']."' />";
    echo "<input type='submit' value='Ok' />";
    die();
  }

Массив галочек содержится в $_POST['sel'].

#7 mahmud

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

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

Отправлено 18 Октябрь 2012 - 10:01

А как мне все открыть в новом окне???

#8 mahmud

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

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

Отправлено 19 Октябрь 2012 - 06:59

Просмотр сообщенияRoman (18 Октябрь 2012 - 08:26) писал:

Ставите выполнение в текущем окне, а в вычислении в конце ставите принудительное завершение скрипта, например:
if ($POST['field'])
  {
	// Ваш код обработки



  }
else
  {
	echo "<form>";
	echo "<input type='text' name='field' />";
	echo "<input type='hidden' name='op_sel' value='additional' />";
	echo "<input type='hidden' name='button_id' value='".$_POST['button_id']."' />";
	echo "<input type='submit' value='Ok' />
	die();
  }

Массив галочек содержится в $_POST['sel'].
Этот код у меня не работает, можете проверить?
И еще мне нужно чтоб в другом окне отрылась.

Сообщение отредактировал mahmud: 19 Октябрь 2012 - 07:00


#9 Гость_Roman_*

  • Гости

Отправлено 19 Октябрь 2012 - 07:41

Извините, вкралась ошибка в код, исправлено в сообщении. В новом окне данное доп. действие не откроется.

#10 mahmud

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

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

Отправлено 19 Октябрь 2012 - 11:57

Просмотр сообщенияRoman (19 Октябрь 2012 - 07:41) писал:

Извините, вкралась ошибка в код, исправлено в сообщении. В новом окне данное доп. действие не откроется.


if ($_POST['field'])
{

$data["НОМЕР"] = $line['НОМЕР'];
$data["ПОЛЬЗОВАТЕЛЬ"] = $line['ПОЛЬЗОВАТЕЛЬ'];
$data["ОПЕРАТОР"] = $line['ОПЕРАТОР'];
insert_query($data, "Сотовая связь");
echo "n<script>";
echo "n window.opener.location.reload(1);"; // Перезагружаем родительское окно
echo "n window.close()"; // Закрываем текущее
echo "n</script>";

}
else
{
echo "<form>";
echo "<label>Месяц</label>";
echo "<select><option>Январь</option><option>Февраль</option><option>Март</option><option>Апрель</option><option>Май</option><option>Июнь</option><option>Июль</option><option>Август</option><option>Сентябрь</option><option>Октябрь</option><option>Ноябрь</option><option>Декабрь</option></select>";
echo "<label>Год</label>";
echo "<select><option>2012</option><option>2013</option><option>2014</option><option>2015</option><option>2016</option><option>2017</option><option>2018</option><option>2019</option><option>2020</option><option>2021</option><option>2022</option><option>2023</option><option>2024</option><option>2025</option></select>";
echo "<input type='hidden' name='op_sel' value='additional' />";
echo "<input type='hidden' name='button_id' value='".$_POST['button_id']."' />";
echo "<input type='submit' value='Ok' onClick='window.history.back(1);window.history.go(0) ' />";
die();
}
У меня insert не работает??? Я правильно написал???

#11 Гость_Roman_*

  • Гости

Отправлено 19 Октябрь 2012 - 12:21

Всё так. За исключением вывода скрипта. Там не просто "n", а "\n". Если названия полей именно такие же (с учётом регистра), то вставка должна произойти.

#12 mahmud

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

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

Отправлено 19 Октябрь 2012 - 13:26

Просмотр сообщенияRoman (19 Октябрь 2012 - 12:21) писал:

Всё так. За исключением вывода скрипта. Там не просто "n", а "\n". Если названия полей именно такие же (с учётом регистра), то вставка должна произойти.




Я хотел бы чтоб копия строк появились внизу их:

с этим кодом у меня появляется только одна строка...мне нужно чтоб записывался все строки....
$data["НОМЕР"] = $line['НОМЕР'];
$data["ПОЛЬЗОВАТЕЛЬ"] = $line['ПОЛЬЗОВАТЕЛЬ'];
$data["ОПЕРАТОР"] = $line['ОПЕРАТОР'];
insert_query($data, "Сотовая связь");

#13 Гость_Roman_*

  • Гости

Отправлено 19 Октябрь 2012 - 16:18

Пройтись в цикле по массиву $_POST['sel']:
foreach ($_POST['sel'] AS $one_id)
  {
    // Ваш код
  }
Либо же, если галочки не установлены, сделать выборку по таблице:
$res = data_table("Контрагенты", "`status`=0", "all");
foreach ($res AS $field_name => $field_value)
  {
    // Ваш код
  }


#14 mahmud

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

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

Отправлено 20 Октябрь 2012 - 10:38

у меня вот такой вопрос,
С этим кодом когда я пишу в вычисления у меня работает нормально, результат: есть 2 строки записывает 2 строки
$data["НОМЕР"] = $line['НОМЕР'];
$data["ПОЛЬЗОВАТЕЛЬ"] = $line['ПОЛЬЗОВАТЕЛЬ'];
$data["ОПЕРАТОР"] = $line['ОПЕРАТОР'];
$data["МЕСЯЦ"] = $_POST['month'];
$data["МЕСЯЦ"] = $_POST['years'];
insert_query($data, "Сотовая связь");

когда я делаю через нажатии на кнопку в дополнительное пример код:

if ($_POST['field'])
{
$data["НОМЕР"] = $line['НОМЕР'];
$data["ПОЛЬЗОВАТЕЛЬ"] = $line['ПОЛЬЗОВАТЕЛЬ'];
$data["ОПЕРАТОР"] = $line['ОПЕРАТОР'];
$data["МЕСЯЦ"] = $_POST['month'];
$data["МЕСЯЦ"] = $_POST['years'];
insert_query($data, "Сотовая связь");


echo "n<script>";
echo "n window.opener.location.reload(1);"; // Перезагружаем родительское окно
echo "n window.close()"; // Закрываем текущее
echo "n</script>";
}
else
{
echo "<form name='form222' method='POST'>";
echo "<label>Месяц</label>";
echo "<select name='month'>
<option>Январь</option>
<option>Февраль</option>
<option>Март</option>
<option selected>Апрель</option>
<option>Май</option>
<option>Июнь</option>
<option>Июль</option>
<option>Август</option>
<option>Сентябрь</option>
<option>Октябрь</option>
<option>Ноябрь</option>
<option>Декабрь</option></select>";
echo "<label>Год</label>";
echo "<select name='years'>";
for ($i=2012; $i<2028; $i++) {
echo "<option>$i</option>";
}
echo "</select>";
echo "<input type='hidden' name='op_sel' value='additional' />";
echo "<input type='hidden' name='button_id' value='".$_POST['button_id']."' />";
//echo "<input type='submit' value='Ok'/>";
echo "<input type='submit' value='Ok' onClick='window.location.reload(history.go(-2)) ' />";
die();
}

У меня появляется форма я выбираю месяц и год и при нажатии на Ok у меня записывается только одна строка только первая, можете поправить код????
Мне нужно вот что:
1) появилась форма
2) выбрал месяц и год
3) при нажатии на кнопку ok у меня закрылась форма и перешла на таблицу и там появились копии срок которых я выбрал или без выборки не важно
4) поле месяц и год равнялись тот значение которых я выбрал в форме ()
ОЧЕНЬ ВАЖНО...., прошу напишите

#15 Гость_Roman_*

  • Гости

Отправлено 22 Октябрь 2012 - 07:43

Дело в том, что при таком способе в $line будет записана только первая строка. В форме необходимо передать установленные галочки или ничего. Например:
foreach ($_POST['sel'] AS $one_sel)
  {
	echo "<input type='hidden' name='sel_lines[]' value='$one_sel' />";
  }
Это создаст в форме скрытые поля с ид выделенных строк. В обработке кода необходимо будет пройтись по этим строкам выборкой данных.
foreach ($_POST['sel_lines'] AS $one_line)
  {
	$one_line = intval($one_line);
	$one_data = data_table("Контрагенты", "`id`=$one_line");
	// Ваш код
  }
Либо же, если галочки не установлены, выборка данных по нужным условиям. Код я уже приводил выше.

#16 mahmud

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

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

Отправлено 22 Октябрь 2012 - 13:45

Спасибо все получилась





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

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