Книга: Программирование на языке Ruby

19.1.2. Вывод и обработка форм

19.1.2. Вывод и обработка форм

Наиболее распространенный способ взаимодействия с CGI-программой — форма. HTML-формы создаются с помощью специальных тегов, которые браузер представляет в виде элементов ввода данных. Подробное их обсуждение выходит за рамки данной книги, но существует немало книг и онлайновых руководств по этому предмету.

В классе CGI имеются методы для генерирования всех элементов HTML-форм. В примере ниже показано, как можно вывести и обработать форму.

require "cgi"
def reverse_ramblings(ramblings)
 if ramblings[0] == nil then return " " end
  chunks = ramblings[0].split(/s+/)
 chunks.reverse.join(" ")
end
cgi = CGI.new("html4")
cgi.out do
 cgi.html do
  cgi.body do
   cgi.hi { "sdrawkcaB txeT" } +
   cgi.b { reverse_ramblings(cgi['ramblings'])) +
   cgi.form("action" => "/cgi-bin/rb/form.cgi") do
    cgi.textarea("ramblings") { cgi['ramblings'] } + cgi.submit
   end
  end
 end
end

Здесь отображается многострочное поле ввода, текст в котором разбивается на слова и выводится в обратном порядке. Так, если набрать фразу «This is a test», то после обработки вы увидите «test a is This». Метод form класса CGI принимает параметр method — один из методов отправки формы, определенных в протоколе HTTP (GET, POST и т.д.). По умолчанию предполагается значение POST.

В этом примере демонстрируется лишь малая толика элементов форм, которые могут встречаться на HTML-странице. Полный перечень вы найдете в любом руководстве по HTML.

Оглавление книги


Генерация: 0.606. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз