On one of my websites I have 2 forms on one page, I am having a problem, with validation_errors();
basically what is happening, is for one of the forms I am checking for errors and if there are any errors I am doing some styling to turn the labels red, how the other form just display errors using echo validation_errors();
. When I submit the form that does not display errors just error styling the validation errors are show in the form. How can I stop this?
Your question is a bit hard to read, but if I understand correctly - you're having trouble validating 2 separate forms from one controller, or issues dealing with errors from different forms using validation_errors()
which afaik prints ALL errors:
Before running validation, check for the existence of either a hidden field, a field that is unique to the form, or you can check the value of the particular submit button.
<form>
<input type="hidden" name="form1" value="whatever">
<input name="form1_email" />
<input type="submit" value="Submit Form 1" />
</form>
Then you can use any of these methods to check which form was submitted (This example checks if "form1" was submitted):
<?php
// Choose one:
if ($this->input->post('form1')): // check the hidden input
if ($this->input->post('form1_email')): // OR check a unique value
if ($this->input->post('submit') == 'Submit Form 1'): // OR check the submit button value
if ($this->form_validation->run()):
// process form
else:
// Create a variable with errors assigned to form 1
// Make sure to pass this to your view
$data['form1_errors'] = validation_errors();
endif;
endif;
// Do same for form 2
Then in your view, instead of using validation_errors()
you would use:
if (isset($form1_errors)) echo $form1_errors; // Print only form1's errors
If this doesn't help let me know, and clarify your question by posting your code.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With