Отправка значений формы в контроллер - PullRequest
8 голосов
/ 30 мая 2011

Это должно быть что-то действительно простое, но я просто не могу его получить.

Я изучаю codeigniter и у меня есть форма со следующим кодом

<body>
  <form name ="userinput" action="form_reader.php" method="post">
      Name <input type="text" name="username"> <br/>
      <input type="submit" value="Submit">
  </form>

У меня в папке контроллеров есть контроллер с именем form_reader.php.Я получаю ошибку 404 Not Found.Что я делаю не так?

Ответы [ 2 ]

32 голосов
/ 30 мая 2011

Отправьте свои значения функции в вашем контроллере

  <form name ="userinput" action="form_reader/save_userinput" method="post">

в вашем контроллере, создайте функцию с именем "save_userinput":

<?php
class Form_reader extends CI_Controller {

    public function save_userinput()
    {
      //code goes here
      // for example: getting the post values of the form:
      $form_data = $this->input->post();
      // or just the username:
      $username = $this->input->post("username");

      // then do whatever you want with it :)

    }
}
?>

Надеюсь, что это поможет.Обязательно ознакомьтесь с документацией CI, это действительно хорошо.Любые дополнительные вопросы, просто спросите:)

РЕДАКТИРОВАТЬ: понял это.Вместо этого используйте этот открывающий тег формы:

<form name ="userinput" action="index.php/form_reader/save_userinput" method="post">

Я привык не иметь там index.php, я удаляю его с помощью файла .htaccess (например, this one),так что я упустил это.Это работает здесь с этим небольшим редактированием в атрибуте действия.

В качестве альтернативы, вы можете использовать помощник по формам:

Загрузить его в свой контроллер, используя this->load->helper('form'), а затем использовать его вместоHTML <form> тег: <? echo form_open('form_reader/save'); ?>

2 голосов
/ 31 мая 2011

Посмотрите учебные пособия по кодированию на NETTUTS.Вам придется немного изменить, так как они используют 1.7.2, но концепции те же

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