【发布时间】:2019-08-01 11:15:34
【问题描述】:
我有一个表格,用于收集医生信息并将其存储在 MySQL 表中,用于医生目录。我在网站上有其他表格可以做其他事情。我对 Codeignitor 和 OOP 非常陌生,但我似乎在这里很困惑,因为每次我提交表单时,它只是重新加载表单,而我填写的数据已经消失了。验证表单中没有错误消息。我进行了测试,似乎在我的控制器中,如果($this->form_validation->run()) 条件没有触发,因为在该部分中运行的print_r($this->input->post()); 不会触发。
下面是我的代码/
控制器表单验证:
public function add_doctor_val()
{
$this->load->library('form_validation');
$this->form_validation->set_error_delimiters('<div class="alert alert-primary" role="alert">', '</div>');
$this->form_validation->set_rules('sname', 'Surname of Doctor', 'required|alpha');
$this->form_validation->set_rules('dr_field', 'Type of Doctor', 'required');
$this->form_validation->set_rules('country', 'Country', 'required');
$this->form_validation->set_rules('town', 'City / Town / Village', 'required|alpha');
$this->form_validation->set_rules('postal_code', 'Postal / Zip Code', 'required');
$this->form_validation->set_rules('tel ', 'Telephone Number', 'required');
$this->form_validation->set_rules('web', 'website', 'valid_url');
if ($this->form_validation->run()) {
$user_id = $this->ion_auth->get_user_id();
$dr_info = array(
'user' => $user_id,
'sname' => $this->input->post('sname'),
'dr_field' => $this->input->post('dr_field'),
'country' => $this->input->post('country'),
'town' => $this->input->post('town'),
'postal_code' => $this->input->post('postal_code'),
'tel' => $this->input->post('tel'),
'web' => $this->input->post('web'),
'review' => $this->input->post('review')
);
$this->db->insert('dr_dir', $dr_info);
$this->success_pin();
} else {
$this->add_doctor();
}
}
表格:
<div class="col-lg-6 col-lg-offset-0 ">
<?php
if (!$this->ion_auth->logged_in()) {
redirect('auth/login');
} elseif ($this->ion_auth->logged_in()) {
?>
<h1>Add Doctor to Directory</h1>
<div id="map"></div>
<form method="post" action="<?= base_url('index.php/forms/add_doctor_val'); ?>">
<br />
<p>Having a list of knowledgebal doctors is a vital tool for any AlphaGal sufferer. If you have a doctor who has taken the time to learn about AlphaGal and it's treatment, please fill in the form below</p>
<div class="form-group row" style="margin-top: 20px">
<div class="col-xs-6">
<?php
echo form_label('Surname of Doctor', 'sname');
echo form_error('sname');
echo form_input('sname', '', 'class="form-control"');
?>
</div>
<div class="col-xs-6">
<?php
echo form_label('Type of Doctor', 'dr_field');
echo form_error('dr_field');
echo "<br />";
?>
<select class="form-control" name="dr_field">
<?php
foreach ($doctors as $row) {
echo '<option value="' . $row->id . '">' . $row->field . '</option>' . "\n";
}
?>
</select>
</div>
</div>
<div class="form-group row" style="margin-top: 20px">
<div class="col-xs-6">
<?php
echo form_label('Country', 'country');
echo form_error('country');
echo "<br />";
?>
<select class="form-control" name="country">
<?php
foreach ($countries as $row) {
echo '<option value="' . $row->country_iso_code . '">' . $row->country_name . '</option>' . "\n";
}
?>
</select>
</div>
<div class="col-xs-6">
<?php
echo form_label('City / Town / Village', 'town');
echo form_error('town');
echo form_input('town', '', 'class="form-control"');
?>
</div>
</div>
<div class="form-group row" style="margin-top: 20px">
<div class="col-xs-6">
<?php
echo form_label('Postal / Zip Code', 'postal_code');
echo form_error('postal_code');
echo form_input('postal_code', '', 'class="form-control"');
?>
</div>
<div class="col-xs-6">
<?php
echo form_label('Telephone Number', 'tel');
echo form_error('tel');
echo form_input('tel', '', 'class="form-control"');
?>
</div>
</div>
<div class="form-group row" style="margin-top: 20px">
<div class="col-xs-6">
<?php
echo form_label('Email', 'email');
echo form_error('email');
echo form_input('email', '', 'class="form-control"');
?>
</div>
<div class="col-xs-6">
<?php
echo form_label('Website', 'web');
echo form_error('web');
echo form_input('web', '', 'class="form-control"');
?>
</div>
</div>
<div class="form-group row" style="margin-top: 20px">
<div class="col-xs-12">
<?php
echo form_label('Leave a review', 'review');
echo form_error('review');
echo form_textarea('review', '', 'class="form-control"')
?>
</div>
</div>
<?php echo form_submit('submit', 'Submit', 'class="btn btn-primary btn-sm-15 btn-block"'); ?>
</div>
</form>
<?php } ?>
</div>
【问题讨论】:
-
我已经删除了验证,它可以工作。我查看了验证规则和语法,找不到错误
标签: php mysql forms codeigniter-3