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


Доп действие - вывод поля под заполнение


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

#1 ber

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

  • Пользователи
  • PipPipPip
  • 237 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 27 Октябрь 2013 - 19:15

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

Модернизированный пример из документации:
if (isset($_REQUEST["rating"]))
{
$line['Отмена записи']=$_REQUEST["rating"];
echo "<script>";
echo "window.opener.location.reload(1);"; // Перезагружаем родительское окно
echo "window.close()"; // Закрываем текущее
echo "</script>";
}
echo "<form method='get'>";
echo "Укажите причину";
echo "<input type='hidden' name='id' value='$button_id'>"; // Передаем значение кнопки
echo "<input type='hidden' name='line_id' value='{6110}'>"; // Значение строки
echo "<input type='text' name='rating' value=''>";
echo "<input type='submit' value='Отправить'>";
echo "</form>"

В чем ошибка?

Сообщение отредактировал ber: 28 Октябрь 2013 - 00:34

www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#2 CbCoder

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

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

Отправлено 28 Октябрь 2013 - 11:05

Откуда вы вообще взяли "{6110}"? Таких переменных нет в программе. Мало того, в данной строке должен быть {$line_id}, его нельзя заменять, т.к. здесь передается id строки. Если вам нужно где-то выводить значение какого-то поля, если нужно самостоятельно извлекать из БД.

#3 ber

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

  • Пользователи
  • PipPipPip
  • 237 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 28 Октябрь 2013 - 11:56

Я думаю их тут миллион ошибок, есть ли у кого то пример действующего кода для заполнения формы во всплывающем окне при доп действии?
www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#4 ber

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

  • Пользователи
  • PipPipPip
  • 237 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 30 Октябрь 2013 - 17:45

Нет желающих помочь и тем самым дать наводку будущему поколению?
www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#5 CbCoder

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

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

Отправлено 30 Октябрь 2013 - 17:49

Пример действующего кода вы сами скопировали из документации. Про остальное я вам уже написал.

#6 ber

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

  • Пользователи
  • PipPipPip
  • 237 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 30 Октябрь 2013 - 20:09

if (isset($_REQUEST["rating"]))
{
$line['Причина отказа']=$_REQUEST["rating"];
$line['Статус'] = "Отмена записи";
echo "<script>";
echo "window.opener.location.reload(1);"; // Перезагружаем родительское окно
echo "window.close()"; // Закрываем текущее
echo "</script>";
}
echo "<form method='get'>";
echo "Укажите причину";
echo "<input type='hidden' name='id' value='$button_id'>"; // Передаем значение кнопки
echo "<input type='hidden' name='line_id' value='$ID'>"; // Значение строки
echo "<input type='text' name='rating' value=''>";
echo "<input type='submit' value='Отправить'>";
echo "</form>";

Вот верный код, все работает, вдруг кому пригодится

Сообщение отредактировал ber: 30 Октябрь 2013 - 20:11

www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#7 ber

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

  • Пользователи
  • PipPipPip
  • 237 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 30 Октябрь 2013 - 20:48

Как из строки

echo "<input type='text' name='rating' value=''>";

сделать, что бы поле ввода было многострочным?
www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#8 ber

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

  • Пользователи
  • PipPipPip
  • 237 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 30 Октябрь 2013 - 21:27

И снова отбой, вот код:

if (isset($_REQUEST["rating"]))
{
$line['Причина отказа']=$_REQUEST["rating"];
$line['Статус'] = "Отмена записи";
echo "<script>";
echo "window.opener.location.reload(1);"; // Перезагружаем родительское окно
echo "window.close()"; // Закрываем текущее
echo "</script>";
}
echo "<form method='get'>";
echo "Укажите причину отказа</br></br>";
echo "<input type='hidden' name='id' value='$button_id'>"; // Передаем значение кнопки
echo "<input type='hidden' name='line_id' value='$ID'>"; // Значение строки
echo "<textarea name='rating' cols='40' rows='5'> </textarea>";
echo "</br></br>";
echo "<input type='submit' value='Отменить запись в сервис'>";
echo "</form>";

www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#9 ber

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

  • Пользователи
  • PipPipPip
  • 237 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 08 Ноябрь 2013 - 09:51

Как сделать заполнение этого поля:
echo "<textarea name='rating' cols='40' rows='5'> </textarea>";
Обязательным?
www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#10 CbCoder

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

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

Отправлено 08 Ноябрь 2013 - 09:57

Добавить проверку на js при нажатии кнопки "Отменить запись в сервис". Если элемент пуст - отменять событие нажатия кнопки, с выводом сообщения.

#11 ber

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

  • Пользователи
  • PipPipPip
  • 237 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 08 Ноябрь 2013 - 10:40

У меня есть код, но это немного не то.

if ($line['Кол-во н/ч']=="") {
echo "<script>alert('Укажите количество нормо-часов!');
location.href='http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']."'</script>";
}

Помогите его модернизировать
www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#12 CbCoder

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

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

Отправлено 08 Ноябрь 2013 - 10:52

Это проверка на PHP, а я вам говорю про Javascript. JS гораздо удобнее в данном случае, т.к. не требует перезагрузок страницы.

В вашем случае, во-первых, нужно присвоить id элементу textarea:

echo "<textarea id='rating' name='rating' cols='40' rows='5'> </textarea>";

Во-вторых, как я писал, добавить проверку значения этого элемента при нажатии кнопки:

echo "<input type='submit' value='Отменить запись в сервис' onclick=\"if (document.getElementById('rating').value=='') {alert('Поле не заполнено!'); return false;}\">";


#13 ber

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

  • Пользователи
  • PipPipPip
  • 237 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 08 Ноябрь 2013 - 11:08

Спасибо, но что-то пошло не так, не реагирует на пустое поле

Вот полный код:
if (isset($_REQUEST["rating"]))
{
$line['Кол-во н/ч']=$_REQUEST["rating"];
$line['Статус'] = "Выдан";
echo "<script>";
echo "window.opener.location.reload(1);"; // Перезагружаем родительское окно
echo "window.close()"; // Закрываем текущее
echo "</script>";
}
echo "<form method='get'>";
echo "Укажите количество н/ч (обязательно)</br></br>";
echo "<input type='hidden' name='id' value='$button_id'>"; // Передаем значение кнопки
echo "<input type='hidden' name='line_id' value='$ID'>"; // Значение строки
echo "<textarea id='rating' name='rating' cols='20' rows='1'> </textarea>";
echo "</br></br>";
echo "<input type='submit' value='Отменить запись в сервис' onclick=\"if (document.getElementById('rating').value=='') {alert('Укажите количество нормо-часов!'); return false;}\">";
echo "</form>";

Возможно значение .value=='' не устаивает, надо через empty?
www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#14 CbCoder

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

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

Отправлено 08 Ноябрь 2013 - 11:28

Понятие "empty" тут не причем, его вроде вообще нет в JS. Значение в поле может быть только строкой, соответственно и проверка идет на пустую строку. Другое дело, что по умолчанию у вас там сейчас не пустая строка, а пробел: " ", соответственно, если пользователь даже не залезал в поле, там все равно будет не пусто, и проверка решит что все нормально. Можно добавить уборку пробелов перед проверкой:

echo "<input type='submit' value='Отменить запись в сервис' onclick=\"if (document.getElementById('rating').value.replace(/ /g,'')=='') {alert('Укажите количество нормо-часов!'); return false;}\">";


#15 ber

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

  • Пользователи
  • PipPipPip
  • 237 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 08 Ноябрь 2013 - 12:16

Отлично, спасибо, и еще мини вопрос.

Как в значение по умолчанию поставить содержимое поля какого-либо?

echo "<input type='text' name='rating' value='?????'>";

www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#16 CbCoder

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

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

Отправлено 08 Ноябрь 2013 - 12:18

$line['Поле'] не работает?

#17 ber

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

  • Пользователи
  • PipPipPip
  • 237 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 08 Ноябрь 2013 - 12:22

Ошибка вычисления

13: echo "<input type='hidden' name='line_id' value='$ID'>"; // Значение строки
14: echo "<textarea id='rating' name='rating' cols='40' rows='5' value='$line['f5921']'></textarea>";
15: echo "</br></br>";
syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

Сообщение отредактировал ber: 08 Ноябрь 2013 - 12:49

www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#18 CbCoder

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

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

Отправлено 08 Ноябрь 2013 - 12:58

Вы засунули переменную внутрь строки, да при этом еще и не заэкранировали кавычки. Настоятельно рекомендую почитать документацию по HTML, PHP и JS, прежде чем писать вычисления.

echo "<input type='text' name='rating' value='".$line['Поле']."'>";






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

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