我试图做一个错误弹出消息但是在我从谷歌做了很多研究之后,所有的教程对我都没有用。在这个项目中,我使用' rn'并发布RN,NAME,D.O.B,AGE,GENDER,RACE,RELIGION'。现在我想为'设置验证。例如:if''与数据库中的数据不匹配,将显示错误消息。 (抱歉我的英语不好,因为英语不是我的母语)。
这是控制器:
<?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来说是全新的,我所学到的都是来自mr.google,我周围的人都无法提供帮助。谢谢。
答案 0 :(得分:1)
基本上如果没有找到结果,你的get_results()
函数会返回一个空数组,而foreach循环将失败&#39;。因此,您必须检查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
)。