【问题标题】:how to send or post an array from view page to controller in codeigniter如何在codeigniter中将数组从视图页面发送或发布到控制器
【发布时间】:2015-12-17 05:43:30
【问题描述】:

在视图页面中我有一个数组

$flat=Array ( [0] => 1 [1] => LOGIN [2] => LOGIN_FIELD [3] => IF_LOGIN [4] => 20 [5] => 30 [6] => com.yodlee.common.FieldInfoSingle [7] => LOGIN [8] => User Name [9] => 1 [10] => [11] => [12] => 21884 [13] => [14] => [15] => PASSWORD [16] => LOGIN_FIELD [17] => IF_PASSWORD [18] => 20 [19] => 40 [20] => com.yodlee.common.FieldInfoSingle [21] => PASSWORD [22] => Password [23] => 1 [24] => [25] => [26] => 21885 [27] => [28] => [29] => 8899 )

我如何在我的控制器中获取这个数组。我在同一个视图页面中使用 form_open()。我怎样才能传递这个? 我试过这个:

echo form_open('money_c/yodlogin');?>

username:<input type="text" name="uname"><br>
passord:<input type="password" name="pwd"><br>
<input type="hidden" name="flat[]" value="<?php echo $flat;?>">
<input type="submit" name="sub" value="submit">

<?php echo form_close();

在控制器中:$this->input->post('flat'); 但我没有得到。

【问题讨论】:

  • 你怎么能echo一个数组?
  • 您可以在视图中使用json_encodejson_decode 以避免表单中出现多个元素

标签: php arrays codeigniter


【解决方案1】:

您可能需要foreach

foreach($flat as $flatVal) { ?>
    <input type="hidden" name="flat[]" value="<?php echo $flatVal;?>">
<?php }

或者你甚至可以使用serializelike

<input type="hidden" name="flat" value="<?php echo serialize($flat);?>">

当你打印时你必须unserialize

$flatArray = unserialize($this->input->post('flat'));

甚至你也可以使用json_encodelike

<input type="hidden" name="flat" value="<?php echo json_encode($flat);?>">

当你打印时你必须json_decode

$flatArray = json_decode($this->input->post('flat'));

【讨论】:

    【解决方案2】:

    尝试使用 json_encode 或序列化方法

    <?php
    echo form_open('money_c/yodlogin');?>
    
    username:<input type="text" name="uname"><br>
    passord:<input type="password" name="pwd"><br>
    <input type="hidden" name="flat" value="<?php echo json_encode($flat);?>">
    <input type="submit" name="sub" value="submit">
    
    <?php echo form_close();
    

    在控制器中

    $flat_str = $this->input->post('flat'); 
    $flat_arr = json_decode($flat_str, true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 2014-02-11
      • 2020-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多