我正在尝试执行错误弹出消息,但是在我从Google做了很多研究之后,所有教程对我不起作用。在这个项目中,我使用" RN"one_answers" RN,名称,D.O.B,年龄,性别,种族,宗教"搜索。现在,我想设置" RN"的验证。例如:如果'rn'在数据库中的数据不匹配,则会出现错误消息。(对不起,我的英语破损,因为英语不是我的母语)。
这是控制器:
<?php
class Patient extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->helper('form');
$this->load->model('Patient_model');
}
public function index()
{
$data['content'] = 'patient/search_form';
$data['title']="SEARCH";
$data['sub']='SEARCH PATIENT';
$this->load->view("design/index",$data);
}
public function execute_search()
{
$search_term = $this->input->post('search');
$data['results'] = $this->Patient_model->get_results($search_term);
$this->load->view('patient/search_results',$data);
}
}
这是模型:
<?php
class Patient_model extends CI_Model {
public function get_results($search_term='default')
{
// Use the Active Record class for safer queries.
// $this->load->helper('share_function');
$this->db->select('lifeline.pesakit.rn,lifeline.pesakit.nama,lifeline.pesakit.tarikhlahir,lifeline.jantina.nama as jantina,lifeline.agama.nama as agama,lifeline.bangsa.nama as bangsa');
$this->db->from('lifeline.pesakit as pesakit');
$this->db->join('lifeline.jantina','lifeline.jantina.kod = lifeline.pesakit.jantina');
$this->db->join('lifeline.agama','lifeline.agama.kod = lifeline.pesakit.agama');
$this->db->join('lifeline.bangsa','lifeline.bangsa.kod = lifeline.pesakit.bangsa');
$this->db->where('rn',alphaToNumber($search_term));
$query = $this->db->get('');
// Return the results.
return $query->result_array();
}
}
这是search_form.php的视图:
<?php $this->load->view('template/header');?>
<div class="container">
<div class="panel panel-info">
<div class="panel-body">
<?php
echo form_open('index.php/patient/execute_search');
echo form_input(array('name'=>'search'));
echo form_submit('search_submit','Submit');
?>
</div>
</div>
</div>
<?php $this->load->view(
'template/footer');?>
这是search_results.php的视图:
<?php $this->load->view('template/header');?>
<div class="container">
<div class="panel panel-info">
<div class="panel-heading">Patient Demographic</div>
<div class="panel-body">
<div class="form-group">
<?php
$no=0;
foreach ($results as $row):
$no++;
?>
<table align="center" length="200" border='0' cellpadding='5' cellspacing='6' style="font-family:arial;">
<tr align='left' >
<th>RN</th> <th> :</th> <th style="font-weight: normal;"><?php echo numberToAlpha($row['rn']);?></th>
<th>Name</th> <th>:</th> <th style="font-weight: normal;"><?php echo $row['nama'];?></th>
<th>Date.of.Birth</th> <th>:</th> <th style="font-weight: normal;"><?php echo dateFormat($row['tarikhlahir']);?></th>
<th></th><th></th><th></th>
</tr>
<tr align='left'>
<th>Age </th><th> :</th> <th style="font-weight: normal;"><?php echo calculateCurrentAge ($row['tarikhlahir']);?></th>
<th>Gender</th> <th>:</th> <th style="font-weight: normal;"><?php echo $row['jantina'];?></th>
<th>Race</th> <th>:</th> <th style="font-weight: normal;"><?php echo $row['bangsa'];?></th>
<th>Religion</th> <th> :</th> <th style="font-weight: normal;"><?php echo $row['agama'];?></th>
</tr>
<?php endforeach ?>
</table>
</div>
</div>
</div>
<?php $this->load->view('template/footer');?>
请帮助我所有人,因为我是Codeigniter的新手,而我所学的只是Google先生,周围没有人可以提供帮助。谢谢。
基本上,如果找不到结果,您的 get_results()
函数返回一个空数组,而foreach循环将'失败'。因此,您必须检查count($results) > 0
是否意味着您必须检查是否有任何结果:
<?php $this->load->view('template/header');?>
<div class="container">
<div class="panel panel-info">
<div class="panel-heading">Patient Demographic</div>
<div class="panel-body">
<div class="form-group">
<?php
if (count($results) > 0):
$no = 0;
foreach ($results as $row):
$no++;
?>
<table align="center" length="200" border='0' cellpadding='5' cellspacing='6' style="font-family:arial;">
<tr align='left'>
<th>RN</th>
<th> :</th>
<th style="font-weight: normal;">
<?php echo numberToAlpha($row['rn']);?>
</th>
<th>Name</th>
<th>:</th>
<th style="font-weight: normal;">
<?php echo $row['nama'];?>
</th>
<th>Date.of.Birth</th>
<th>:</th>
<th style="font-weight: normal;">
<?php echo dateFormat($row['tarikhlahir']);?>
</th>
<th></th>
<th></th>
<th></th>
</tr>
<tr align='left'>
<th>Age </th>
<th> :</th>
<th style="font-weight: normal;">
<?php echo calculateCurrentAge ($row['tarikhlahir']);?>
</th>
<th>Gender</th>
<th>:</th>
<th style="font-weight: normal;">
<?php echo $row['jantina'];?>
</th>
<th>Race</th>
<th>:</th>
<th style="font-weight: normal;">
<?php echo $row['bangsa'];?>
</th>
<th>Religion</th>
<th> :</th>
<th style="font-weight: normal;">
<?php echo $row['agama'];?>
</th>
</tr>
</table>
<?php
endforeach;
else:
?>
<p>No results found</p>
<?php endif; ?>
</div>
</div>
</div>
<?php $this->load->view('template/footer');?>
注意:我在foreach循环中移动了</table>
支架,或者您没有终止表。我不确定为什么您要为每个patient
创建一个新表,但是我要判断谁;)。另外,如果您不使用它,则无需启动计数器($no
)。