помогите сохранить постданные с помощью codeigniter - PullRequest
0 голосов
/ 26 мая 2011

Вот мой сценарий, я создаю форму с codeigniter, я понимаю, как заполнять поля моделями и тому подобное.У меня есть макет формы.Теперь он запускается из моей индексной функции.Я хочу сохранить все данные, предоставленные этой форме, и получить к ним доступ в массиве постданных, где каждый индекс является именем значения.Пожалуйста помоги.CodeIgniter, PHP

Ответы [ 2 ]

0 голосов
/ 26 мая 2011

См. код входного класса воспламенителя

Один пример того, как сформировать ваш код:

public function add_something()
  {
    if (strtolower($_SERVER['REQUEST_METHOD']) == 'post') { // if the form was submitted
      $form = $this->input->post(); 
      // <input name="field1" value="value1 ... => $form['field1'] = 'value1'
      // you should do some checks here on the fields to make sure they each fits what you were expecting (validation, filtering ...)

      // deal with your $form array, for exemple insert the content in the database

      if ($it_worked) {
        // redirect to the next page, so that F5/reload won't cause a resubmit
        header('Location: next.php');
        exit; // make sure it stops here
      }

      // something went wrong, add whatever you need to your view so they can display the error status on the form
    }

    // display the form
  }

Таким образом, ваша форма будет отображаться, и, если она отправлена, ее содержимое будет обработано, если произойдет ошибка, вы сможете сохранить отправленные значения, предварительно введя их в форму, отобразить сообщение об ошибке и т. Д. если это работает, пользователь перенаправляется на то, что он может безопасно перезагрузить страницу без многократной отправки.

0 голосов
/ 26 мая 2011

вы создаете форму

echo form_open('mycontroller/mymethod'); 
// rest of form functions

or  <form name="myform" method="post" action="<?php echo site_url('mycontroler/mymethod');?>" >  // rest of html form

then, in Mycontroller:

   function mymethod()
   {
     $postarray = $this->input->post();

    // you can pass it to a model to do the elaboration , see below
    $this->myloadedmodel->elaborate_form($postarray)
   }   

Model:

  function elaborate_form($postarray)
  {
    foreach($postarray as $field)
    {
      \\ do your stuff
    }
  }

Если вы хотите XSS-фильтрацию, вы можете передать TRUE в качестве второго параметра в вызове $this->input->post().Проверьте руководство пользователя по библиотеке ввода

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