Coder25
Coder25

Reputation: 311

Submitting form values to controller

This should be something really simple but I just can't get it.

I'm learning codeigniter and I have a form with following code

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

I have a controller called form_reader.php in my controllers folder. I get a 404 Not Found error. What am I doing wrong ?

Upvotes: 9

Views: 81966

Answers (2)

AlunR
AlunR

Reputation: 465

Have a look at the NETTUTS codeigniter tutorials. You'll have to modify slightly as they are using 1.7.2 but the concepts are the same

Upvotes: 2

Joris Ooms
Joris Ooms

Reputation: 12038

Send your values to a function in your controller

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

in your controller, make a function called "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 :)

    }
}
?>

Hope that helps. Make sure to check out the CI documentation, it's really good. Any more questions, just ask :)

EDIT: Figured it out. Use this opening form tag instead:

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

I'm used to not having the index.php there, I remove it by using a .htaccess file (like this one), so I overlooked that. It works here with that small edit in the action attribute.

Alternatively, you could use the form helper:

Load it in your controller by using this->load->helper('form') and then use this instead of the HTML <form> tag: <? echo form_open('form_reader/save'); ?>

Upvotes: 36

Related Questions