视图中的echo只打印从控制器传递的数组中的第一个字符


echo in view prints only first charcter from array passed from controller

controller.php

 function post_action()
    {   
        $checkin=$_POST['checkin'];
        $checkout=$_POST['checkout'];
        $adult=$_POST['adult'];
        $child=$_POST['child'];

       $data['abc']= array("checkin"=>$checkin, "checkout"=>$checkout, "adult"=>$adult, "child"=> $child);
               $this->load->view('template/reservation_template',$data);
    }

视图

  <script type="text/javascript">
 function changeFunc() {
  var checkin = $("#CheckIn").val();
  var checkout = $("#CheckOut").val();
 var adult = $("#adult").val();
  var child = $("#child").val();
$.ajax({
type: "POST",
url: "<?php echo base_url().'index.php/room_booking/post_action' ;?>",
data: {
 'checkin' : checkin,
 'checkout' : checkout,
 'adult' : adult,
 'child' : child,
    },
  success: function(msg) 
    {
        $("#container").html(msg);
    }
 });
 }

 <?php
    $adultsNumber = 5;
    $children = 5;
    ?>
 <div id="container">   // i want to display data from ajax in this div.
<div id="body">
       <div class ="checkForm">
           <form method="post" action="#" id="checkin_room">
        <table>
            <tr>
                <td class="tabledata">
                </td>
                <td class="tabledata">
                  <div class="input-prepend input-append">
            <span class="add-on">Check In</span>
            <input name="CheckIn" type="text" required="required" style="width:185px; cursor:pointer;" id="CheckIn" value="">
            <span class="add-on" style="width:auto; "><img src='<?php echo base_url().'contents/images/ParkReserve.png' ;?>' style="width: 15px; height: 20px;"   ></span>
            </div> 
                </td>
                <td class="tabledata">
                    Adults 
                </td>
                <td class="tabledata">
                    <select name="adults" id="adult">
                        <?php
                        for ($i = 1; $i <= $adultsNumber; $i++) {
                            echo "<option value=" . $i . ">" . $i . "</option>";
                        }
                        ?>
                    </select>
                </td>
            </tr>
            <br/>
            <tr>
                <td class="tabledata">
                </td>
                <td class="tabledata">
                   <div class="clear"></div>
            <div class="input-prepend input-append">
            <span class="add-on">Check Out</span>
            <input name="CheckOut" type="text" style="width:185px; cursor:pointer;" required="required" id="CheckOut" value="">
            <span class="add-on" style="width:auto;"><img src='<?php echo base_url().'contents/images/ParkReserve.png' ;?>' style="width: 15px; height: 20px;" ></span>
            </div>
                </td>
                <td class="tabledata">
                    Children
                </td>
                <td class="tabledata">    
                    <select name="children" required id="child">
                        <?php
                        for ($i = 1; $i <= $children; $i++) {
                            echo "<option value=" . $i . ">" . $i . "</option>";
                        }
                        ?>
                    </select>
                </td>
                <td class="tabledata">
                    <input type ="button" value="Submit"   onclick="javascript:changeFunc();">
                </td>
        </table>
    </form>


    </div>
    </div>
  <?php
    if(!empty($abc))    // this is where i am fetching data from controller to view.
    {
    foreach($abc as $g)
    {
        //var_dump($g);
    echo  $g["checkin"];
    }
    }
    ?>
 </div>

我很惊讶为什么echo$g["checkin"]只给我输入字段中的第一个字符,而var_dump则给我输入的全部值。我做错什么了吗。请帮帮我。

首先,如果您通常想要在视图中回显数据,那么您需要调用模型来获取数据。

现在,您可以将$_POST值放在一个数组中,如下所示:

$data = array(
"checkin"=>$checkin,
"checkout"=>$checkout,
"adult"=>$adult,
"child"=> $child
);
$this->load->view('template/reservation_template',$data);

一般来说,这些值来自一个类似于这样的模型,通过在控制器中进行这样的调用:

$data['values'] = $this->Model_name->get_some_data();

在视图中,您可以循环如下值:

foreach($values as $value)
{
   echo $value['checkin];
}