将数组数据从视图传递到控制器并反向 php codeigniter

Posted

技术标签:

【中文标题】将数组数据从视图传递到控制器并反向 php codeigniter【英文标题】:Passing array data from view to controller and reverse php codeigniter 【发布时间】:2018-03-03 11:52:58 【问题描述】:

我正在尝试使用 php codeigniter 将数据从视图传递到控制器。这是我的表单视图:

<form method="POST" action="<?php echo base_url()?>downloadfiles">
    <p>Download file</p>                    
    <p>Browse zip file</p> 
    <input type="text" name="data" value="<?= $data; ?>" style="display: none">                                     
    <input type="submit" name="downloadfiles" value="Download" />
</form> 

在 downloadfiles.php - 控制器中,我尝试通过 POST 方法获取数组 $data 并将其传递回 download_success.php 视图:

if ($this->input->post('downloadfiles')) 
        $data = $_POST['data'];          
        $this->load->view('upload/download_success', $data);
    

这是我在 download_success.php 中的代码:

<?php                
    if(!empty($data))
    
       print_r($data);
    
?>

当我在表单视图中运行代码时,它返回错误数组到字符串转换,而在 download_success 视图中,它没有打印任何内容。我哪里错了?

【问题讨论】:

在您的控制器中替换 $data = $_POST['data']; with $data = array('my_data' =&gt; $_POST['data'] ); 并在视图中替换 $data 为 '$my_data' 我做了,它返回了同样的错误。 我在下面的答案中更新了脚本。 【参考方案1】:

这是因为你在视图中传递了一个字符串变量,而 CodeIgniter 将它视为一个数组。

MyController.php

if ($this->input->post('downloadfiles')) 
    $view_data = array('my_data' => $this->input->post('data') );          
    $this->load->view('upload/download_success', $view_data);

my_view.php

if(!empty($my_data))

   print_r($my_data);

你的表格会是这样的:

//如果 $my_data 是一个数组,那么您可以 print_r($my_data) 并显示您想要在视图中显示的所需值。

<form method="POST" action="<?php echo base_url()?>downloadfiles">
    <p>Download file</p>                    
    <p>Browse zip file</p> 
    <input type="text" name="data" value="<?=$my_data?>">                                     
    <input type="submit" name="downloadfiles" value="Download" />
</form>

试试这个,希望对你有帮助。

【讨论】:

我还在表单中打印了 $my_data 数组来测试数组中的数据。它打印正确。但在 my_view.php 中它不打印任何内容。 嘿更新的是我在本地系统上执行的代码,但它没有给我这个错误。 好的,您是遇到错误还是只是为空$my_data 它只是返回空的 $my_data。 在您的表单中,您将输入字段隐藏,那么您如何在其中传递值?

以上是关于将数组数据从视图传递到控制器并反向 php codeigniter的主要内容,如果未能解决你的问题,请参考以下文章

将数据从 MVC 控制器传递到 PHP 中的视图

将 JavaScript 数组从视图传递到 Laravel 控制器

从按钮将值传递给视图控制器字典

将标签数据从表视图传递到另一个视图控制器

将数组从 AuthController 传递到 Laravel 5 中的登录视图

将数据从视图控制器传递到 NSObject