0

私はcodeigniterを初めて使用し、Webページにデータを表示しようとしていますが、コントローラーとモデルがダウンしていますが、変数がビューページに渡されているようです。コードを見て、何が問題なのか教えてください。あなたが助けるためにそれで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;
       }
     }






}
4

2 に答える 2

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>
于 2013-02-25T12:51:50.517 に答える
0

あなたのコードを読んで私はあなたが何を達成しようとしているのか正直にわかりませんが、それには明らかな問題があります。

最初にコントローラーでpost変数を割り当てます。最初のロードではpost変数がないため、これらの行はすべてすぐに失敗します。

次に、1つのデータ変数survay_dataのみをビューに渡しますが、ビューで$ qAなどを使用しようとしていて、それらの変数は存在しません。

それらをsurvay_data配列から取得することを期待している場合は、以下のようにその配列を介してそれらをロードする必要があります。

<?php echo $survay_data[0]['qA']; ?><input type="checkbox" name="q" value="qA">
于 2013-02-25T12:52:51.327 に答える