Ready to watch this entire course?
Become a member and get unlimited access to the entire skills library of over 4,974 courses, including more Developer and personalized recommendations.Start Your Free Trial Now
- View Offline
Starting with the what and why of CodeIgniter, Jon introduces key concepts such as the MVC pattern and libraries by demonstrating how to create static pages, then storing and displaying magazine info in a database. Advanced topics like classes and helpers are explored to validate user input, upload files, and much more. By creating a complete system, you'll have the foundation to build your own applications with CodeIgniter.
- What is CodeIgniter?
- Creating a static page controller
- Generating output with a view
- What is a model?
- Saving data with Active Records
- Creating forms
- Validating user input
- Listing records in tables
- Uploading images
- Viewing and deleting records
Skill Level Intermediate
The form helper is a great shortcut for quickly building forms. Instead of writing raw HTML I can greatly simplify the view by using the form helper functions to generate the markup. The form helper functions return html, so they should be used in the view, not in the controller. I will have to load the helper from the controller. I'm going to switch back to Netbeans. And go to the add method if I'm not already there. And add the method to load the form helper. So, this, load, helper, form. Save the controller, then open the magazine form the first line echoing the validation errors is good so let's leave that alone. However I'm sorry to say that everything else is going to get replaced. Its good to have perspective to know that there's than one way to perform a task. I'm going to start with a new form using the function form open PHP echo form open. I have the ability to specify a particular action and attribute. But since it's posting to the same place I can leave the action off and form open defaults to post so there's really nothing else to do, and close the tag. We don't need the duplicate form so remove that.
Next the label for publication name, surely there's a better way. Yes there is, using the echo form label, PHP, echo, form, label. It takes two arguments, human readable name and the identifier, publication, id and close the tag. Select lists are referred to as drop downs with encoding data/g, which is a little funny. PHP, echo, form dropdown. Which just takes the form element name, publication ID, followed by an array of option labels keyed by value.
Just as I did before. So publication, Form options, the third argument is the default value. I'm going to use another form helper called set value, which grabs the value from the post array, great for failed formula submissions. So set value and then the key publication ID and close that out. I'll completely remove the redundant html contents, so that's one, two, three, four, five, six, seven lines of code that have been saved. Next, I'll replace the label for the issue number, PHP echo form label issue number, followed by the identifier, issue number and close the tag. I'll use form input which defaults the text input for the issue number. Php echo form input.
The first argument takes the form element name, which is issue number, and the second is the default value. I'll use set value again, passing it, issue number. To populate it on failed submissions. Close out the php tag, and remove the unnecessary HTML. We'll do something very similar for the issue date publication. And date published. Replace the label.
And remove the unnecessary html. The last element will be the submit button, which we'll use form submit. PHP echo form submit, save with label, save. Semi colon, and close the PHP tag. I'll close the form with php echo form_close and save the viewing. Doesn't this look a lot cleaner? Rather than a mix of loops and hard coded html.
There's some clean html for designer to do their magic to and some simple php function calls. Go back to the browser and go to the add form and intentionally fail validation by submitting issue number kitty. This time the default value is set. Very cool. Let's kick things up a notch with the ability to upload cover images.