В Великобритании также лучше всего включить реальный физический адрес для вашей компании и ее зарегистрированный номер.
Таким образом, все открыто и честно, и они с меньшей вероятностью будут вручную отмечать его как спам .
Файл просмотра бесполезен, если контроллер не загрузит и не отобразит его. Вы должны создать контроллер, чтобы получать данные формы, обрабатывать их, а затем отображать результат процесса.
Вы можете использовать помощник формы, чтобы установить открытые теги формы, а также закрывающие теги:
<?php echo form_open('form/search'); ?>
<input type="text" name="search" value="" size="50" />
<div><input type="submit" value="Submit" /></div>
<?php echo form_close(); ?>
Без использования помощника формы вы все равно можете написать его так:
<form action="<?php echo site_url('form/search'); ?>">
Затем добавьте поиск
метод в форму
controller:
function search()
{
//get form field
$search = $this->input->post('search');
// do stuffs here
//...
}
Помните, что CI помогает вам только с базовой организацией кода и предоставляет полезную библиотеку и помощник. Но вам еще нужно написать алгоритм процесса у себя на сайте.
Не забудьте прочитать прилагаемое руководство пользователя в загруженном пакете codeigniter. Вы можете многому научиться из этого примера. Не стесняйтесь спрашивать здесь то, чего вы не знаете, многие участники stackoverflow помогут вам.
Попробуйте использовать codeigniter 'site_url' в своих действиях, чтобы убедиться, что вы указываете в нужном месте. Действие в вашем примере перешло бы к контроллеру «поиска», а не к контроллеру «формы».
<html>
<head>
<title>Search</title>
</head>
<body>
<form action="<?= site_url('form/process_search') ?>">
<input type="text" name="search" value="" size="50" />
<div><input type="submit" value="Submit" /></div>
</form>
</body>
</html>
index используется в вашем контроллере только тогда, когда ничего не передается .. Итак, в случае с моим примером выше вам нужно что-то вроде этого:
function Form()
{
parent::Controller();
}
function process_search()
{
print "<pre>";
print_r($_POST);
print "</pre>";
}
В M .odel V .iew C . Настройки контроллера, такие как CodeIgniter, представления являются элементами пользовательского интерфейса. На них не должно быть результатов синтаксического анализа.
Если я не ошибаюсь, вы хотите передать данные с www.yoursite.com/index.php/form
на www.yoursite.com/index.php/ search
В неструктурированном php у вас может быть form.html
с действием формы search.php
. Пользователь перейдет на yoursite.com/form.html
, который вызовет yoursite.com/search.php
, который может перенаправить на yoursite.com/results.php.
.
В CodeIgniter (и, насколько я понимаю, в любой системе MVC, независимо от языка) ваш Контроллер , Форма
вызывает функцию, которая загружает форму .html
Просмотреть в себе , а затем запустить его. Представление генерирует код (обычно HTML, но не обязательно), с которым взаимодействует пользователь. Когда пользователь делает запрос, который представление не может обработать (запросы дополнительных данных или другой страницы), он передает этот запрос обратно в контроллер, который загружает дополнительные данные или другое представление.
Другими словами, вид определяет, как будут отображаться данные. Контроллер сопоставляет запросы с представлениями.
Это немного усложняется, когда вы хотите, чтобы в представлении отображались сложные и / или изменяющиеся данные.Чтобы сохранить разделение проблем , которое требует MVC, CodeIgniter также предоставляет вам модели .
Модели отвечают за самую сложную часть любого веб-приложения - управление потоком данных. Они содержат методы для чтения данных, записи данных и, что наиболее важно, методы для обеспечения целостности данных. Другими словами, Модели должны:
Акелос имеет хорошее графическое представление компонентов MVC:
(источник: akelos.org )
При этом самый простой (читай «самый простой», а не "наиболее расширяемый") способ выполнить то, что вы хотите:
function Form()
{
parent::Controller();
}
function index()
{
$this->load->view('form');
}
function search()
{
$term = $this->input->post('search');
/*
In order for this to work you will need to
change the method on your form.
(Since you do not specify a method in your form,
it will default to the *get* method -- and CodeIgniter
destroys the $_GET variable unless you change its
default settings.)
The *action* your form needs to have is
index.php/form/search/
*/
// Operate on your search data here.
// One possible way to do this:
$this->load->model('search_model');
$results_from_search = $this->search->find_data($term);
// Make sure your model properly escapes incoming data.
$this->load->view('results', $results_from_search);
}
На Nettuts есть отличный учебник по CodeIgniter для формы Login. Следуйте скринкасту, и он прояснит ваши вопросы.
http://net.tutsplus.com/videos/screencasts/codeigniter-from-scratch-day-6-login/