I am attempting to email a form with radio button inside it, when I go to send the email. I get a returned value of just “on”. I have set the name “value” correctly and tied it to form_validation code it all seems to “work” but the values are not being set correctly or emailed correctly. Code below.
Controller file:
public function contact_email()
{
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->load->library('email');
$this->form_validation->set_rules('name', 'Name', 'required|xss_clean');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email|xss_clean');
$this->form_validation->set_rules('phone', 'Phone', 'is_numeric|xss_clean');
$this->form_validation->set_rules('comments', 'Comments', 'xss_clean');
if ($this->form_validation->run() == FALSE) {
$data["messages"] = "";
$this->load->view('engage_header');
$this->load->view('engage_nav');
$this->load->view('contact/content_form', $data);
$this->load->view('engage_footer');
} else {
$data["messages"] = "The Email has successfully been sent";
$this->email->from(set_value("email"), set_value("name"));
$this->email->to('test@test.com');
$this->email->subject('Contact Request');
$message = "Name: " . $this->input->post('name') . "\n";
$message .= "Email: " . $this->input->post('email') . "\n";
$message .= "phone: " . $this->input->post('phone') . "\n\n";
$message .= "Comments: " . $this->input->post('comments') . "\n";
$message .= "Favorite Drink:" . $this->input->post('drinks') . "\n";
$this->email->message($message);
$this->email->send();
echo $this->email->print_debugger();
$this->load->view('engage_header');
$this->load->view('engage_nav');
$this->load->view('contact/content_form', $data);
$this->load->view('engage_footer');
}
}
View File
<div class="form_wrapper">
<div class="head_left">
<p class="heading"><img src="/resources/css/images/mail_icon.png" width="32px" height="32px" class="mail_icon">Contact Us</p>
</div>
<div class="borders"></div>
<div class="form_container_left">
<?php echo form_open('/index.php/site/contact_email')?>
<label for="name">Your Name:</label>
<input type="text" name="name" id="name" required/>
<br/>
<br/>
<br/>
<label for="email">Email:</label>
<input type="text" name="email" id="email" required/>
<br/>
<br/>
<br/>
<label for="phone">Phone:</label>
<input type="text" name="phone" id="phone"/>
<br/>
<br/>
<br/>
<label for="messages">How Can We Help?:</label>
<textarea rows="" cols="" id="messages" name="comments"></textarea>
<br/>
<br/>
<br/>
<input type="reset" name="Reset" id="reset_bar">
<input type="submit" name="Submit" id="submit_bar" value="Submit">
</div>
<div class="form_container_right">
<p class="optional_heading">Your Favorite Drink (optional):</p>
<div class="soda_container">
<img src="/resources/css/images/Soda.png" width="64px" height="64px">
<center><p id="soda_text">Soda</p></center>
<br/>
<center><input type="radio" name="drinks" id="soda" value="soda"></center>
</div>
<div class="coffee_container">
<img src="/resources/css/images/coffee.png" width="64px" height="64px">
<center><p id="coffee_text">Coffee</p></center>
<br/>
<center><input type="radio" name="drinks" id="coffee" value="coffee"></center>
</div>
<div class="water_container">
<img src="/resources/css/images/water.png" width="64px" height="64px">
<center><p id="water_text">Water</p></center>
<br/>
<center><input type="radio" name="drinks" id="water" value="water"></center>
</div>
<div class="beer_container">
<img src="/resources/css/images/beer.png" width="64px" height="64px">
<center><p id="beer_text">Beer</p></center>
<br/>
<center><input type="radio" name="drinks" id="beer" value="beer"></center>
</div>
<div class="wine_container">
<img src="/resources/css/images/wine.png" width="64px" height="64px">
<center><p id="wine_text">Wine</p></center>
<br/>
<center><input type="radio" name="drinks" id="wine" value="wine"></center>
</div>
</div>
<?php echo form_close()?>
In order to email radio button values they first must be set by declaring
set_radionested in the value parameter. Like soThere are numerous ways to recall this information back to your “controller” I just used a simple
$this->input->post('$variable')worked.This is how I called it into a message and is what worked for me.
The name “value” set in your view must correlate with the value passed in the controllers
$this->input->post('')parameter.Thanks for everyone’s help on this!!
Dyllen