我是codeigniter的新手,我试图在网页上显示一些数据,我有控制器和模型,但我的变量daunt似乎传递到视图页面看看我的代码,如果你能告诉我tnx对你有什么不妥。
控制器:
class Survaycontroller extends CI_Controller{
// 'QID, Question, qA, qB, qC'
function index()
{
$arrData = array();
$arrData["qA"] = $this->input->post("qA");
$arrData["qB"] = $this->input->post("qB");
$arrData["qC"] = $this->input->post("qC");
$arrData["Question"] = $this->input->post("Question");
$this->load->model('survay');
$survay_data = $this->survay->dosurvay($arrData);
$viewData['survay_data'] = $survay_data;
$this->load->view('survay_view', $viewData);
}
}
查看:
<html>
<body>
<?php form_open('survay'); ?>
<h1><?php echo $Question;?></h1>
<?php echo $qA; ?><input type="checkbox" name="q" value="qA">
<?php echo $qB; ?><input type="checkbox" name="q" value="qB">
<?php echo $qC; ?><input type="checkbox" name="q" value="qC">
<?php echo form_close(); ?>
</body>
</html>
型号:
function dosurvay($arrData){
$this->db->select('QID, Question, qA, qB, qC');
$this->db->from('tblquestions');
$this->db->where('Question', $arrData['Question']);
$this->db->where('qA', $arrData['qA']);
$this->db->where('qB', $arrData['qB']);
$this->db->where('qC', $arrData['qC']);
$this -> db -> limit(1);
$query = $this -> db -> get();
if($query -> num_rows() == 1)
{
return $query->result();
}
else
{
return false;
}
}
}
答案 0 :(得分:1)
假设您的模型返回所有数据。 你必须使用foreach,因为数据存储在数组中,然后你可以像这样检索它。
<html>
<body>
<?php form_open('survay'); ?>
<?foreach($survay_data as $survay):?>
<h1><?php echo $survay->Question;?></h1>
<?php echo $survay->qA; ?><input type="checkbox" name="q" value="qA">
<?php echo $survay->qB; ?><input type="checkbox" name="q" value="qB">
<?php echo $survay->qC; ?><input type="checkbox" name="q" value="qC">
<?endofreach;?>
<?php echo form_close(); ?>
</body>
</html>
答案 1 :(得分:0)
阅读你的代码我真的不知道你想要完成什么,但它有明显的问题。
首先在您的控制器中分配后期变量,在第一次加载时您不会有后置变量,因此所有这些行都会立即失败。
然后你只将一个数据变量survay_data传递给视图,但是你在视图中尝试使用$ qA等,这些变量不存在。
如果您希望从survay_data数组中获取那些,那么您需要按如下方式加载它们:
<?php echo $survay_data[0]['qA']; ?><input type="checkbox" name="q" value="qA">