2012-03-28 1 views
4

мой взгляд:как отправить данные формы в контроллер с помощью метода GET в CodeIgniter

<form action="<?=base_url()?>index.php/frontend/main_con/temp"> 
    <input type="text" name="temp"> 
    <input type="submit"/> 
</form> 

Контроллер:

function temp(){ 
    echo $_GET['temp']; 
} 

я не могу в состоянии достичь этой функции, и я получил ошибку

Обнаружена ошибка Введенный вами URI имеет запрещенные символы.

Итак, как передать данные формы в контроллере с использованием метода GET? thanx заранее.

+0

Мне просто интересно, почему вам понадобится использовать GET over POST для извлечения значений? – Catfish

ответ

2
parse_str($_SERVER['QUERY_STRING'],$_GET); 

работал только для меня после того, как я добавил следующую строку к приложениям/Config/config.php:

$config['uri_protocol'] = "PATH_INFO"; 
1

Для решения проблемы перейдите по ссылке this line. Я лично считаю, что это ошибка по дизайну, потому что символы с черным списком из URI будут намного лучше, чем белый список.

Что касается GET переменных .. вам нужно будет использовать <form method="get" action="/what/ever/">.

7

Вид:

<form action="<?=site_url('controller_name/function_name);?>" method="get"> 
    <input type="text" name="temp"> 
    <input type="submit"/> 
</form> 

Контроллер

class controller_name extends CI_Controller{ 

    function function_name(){ 
     echo $this->input->get('temp'); 
    } 

} 
1

Вы не можете использовать $this->input->get('temp');

+0

Почему? согласно моим знаниям, каждая форма должна размещаться через метод «post» и «get» в php. –

+0

Я не должен понимать «хорошо». Когда я работаю над данными CI и post form, я всегда обращаюсь к нему с помощью метода CI '$ this-> input-> post ('temp');'. – Catfish

Смежные вопросы