codeigniter получить значение из формы - PullRequest
7 голосов
/ 30 декабря 2010

Я начинающий программист.Моя цель - получить значение из формы представления example_view.php, а затем отобразить этот результат в представлении result.php, когда я отправлю заявку.

  1. как я могу исправить эту проблему?
  2. Если я хочу передать это значение в сеанс, как я могу это сделать?

example_view.php (просмотр)

<html>
<head><title>Test Example View</title></head>

<body>
<h1 align="center">Test Sample CI Framwork</h1>

<?php echo form_open('example/getvalue'); ?>
<input type="text" name="username" value="" size="50" />
<div><input type="submit" value="Submit" name="submit"/></div>
<?php echo form_close(); ?>
</body>
</html>

result.php (просмотр)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php echo 'Your new value is '.$value;?>
</body>
</html>

example.php (контроллер)

<?php
class Example extends Controller {

 function Example()
 {
  parent::Controller(); 
   $this->load->helper('form');
   $this->load->helper('url');

 }

 function index() {
  $this->load->view('example_view');
  $this->getvalue();
 }

 function getvalue()
{
 if ($this->input->post('submit')==true) {
 $data['value']=$this->input->post('username');
  $this->load->view('result',$data);
 }

}

}
?>

Спасибо за помощь.

Ответы [ 3 ]

9 голосов
/ 30 декабря 2010

Если вы тоже используете form_validation, вы можете использовать

set_value('test'); // $_POST['test']

В противном случае используйте

$this->input->post('test'); // $_POST['test']

В вашей форме установите что-то вроде;

$data = array('name' => 'field' => 'value' => $this->input->post('test'));
echo form_input($data);
3 голосов
/ 15 января 2014

Чтобы получить значение в codeigniter от ввода, вы можете использовать post

$this->input->post('name');

Вы также можете получить значение из метода GET

$this->input->get('name');
0 голосов
/ 04 января 2011

Я скопировал и вставил ваш код, и мне кажется, что все работает нормально - мне немного непонятно, в чем ваша проблема под «1».is?

Что касается сессий, руководство по CodeIgniter очень полезно для этого: http://codeigniter.com/user_guide/libraries/sessions.html

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

$this->load->library('session');

Затем вы можете установить данные сеанса с помощью

$this->session->set_userdata('some_name','some_value');

Таким образом, ваша конечная функция будет выглядеть примерно так

function getvalue()
{
 if ($this->input->post('submit')==true) {
 $data['value']=$this->input->post('username');
 $this->session->('username',$data['value']);
 $this->load->view('result',$data);
 }
}

Затем вы можете получить данные, вызвав $ this-> session-> userdata('item'), поэтому для вашего кода

echo $this->session->userdata('username');

должно выводиться все, что было введено в текстовое поле (но не забудьте сначала выполнить некоторые проверки безопасности в поле ввода!)

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