1

我将表单数据传递给新的控制器/视图。

我想遍历 $_POST 数组,将值传递给控制器​​/模型,查询数据库并将结果返回给要显示的视图。

所以我的视图中有以下代码:

foreach($_POST as $key => $value) //$key is productcode eg '4560'
    {
       $this->sales_model->get_productdetails($this->input->post('$key'))
       echo "Price: ".$price."<br>";
       echo "Pieces: ".$pieces."<br>";
       echo "Cubic Meters: ".$cubicmeters."<hr>";

    }

这是我的模型:

function get_productdetails($productcode)
{
    $this->db->select('price,pieces,cubicmeters');
    $this->db->from('ProductList');
    $this->db->where('productcode',$productcode);
    $q = $this->db->get();
    if($q->num_rows() > 0) 
    {
        return $q->row_array(); 
    }
}

控制器:function new_auto_spread_details() { $this->load->view('sales/new_autospread_order_lines'); }

这不能正常工作。如何在视图上输出/显示查询结果?可以做到这一点,如果不能做到这一点,如何通过最佳实践来实现?

一如既往地感谢,

4

2 回答 2

4

您应该使用 CodeIgniter 的输入类来获取所有帖子值。

$formValues = $this->input->post(NULL, TRUE);

然后在您的控制器中设置一个中间值来保存您的数据。

$products = array();

foreach($formValues as $key => $value) 
{
    $products[] = $this->sales_model->get_productdetails($key)
}

$data = array();
$data["products"] = $products;

将中介传递给视图。

$this->load->view('sales/new_autospread_order_lines', $data);

在您的评论中,将 $data 数组中的每个散列项引用为变量。

<?php foreach($products as $product) { ?>
<p>
    <?php echo $product["price"]; ?>
</p>
<?php } ?>
于 2013-04-25T23:20:42.063 回答
0

$this->input->post('$key')应该$this->input->post($key)

任何以 开头的东西$this->都应该由控制器调用,而不是视图。

您的控制器应如下所示:

function new_auto_spread_details()
{
    $products = array();
    foreach($_POST as $key => $value) //$key is productcode eg '4560'
    {
        /* your model method is returning an array,
           so you need to assign it to a variable */
        $products[] = $this->sales_model->get_productdetails($key)
    }

    $this->load->view('sales/new_autospread_order_lines', array(
        'products' => $products
    ));
}

然后在视图中:

<?php foreach($products as $product): ?>
    Price: <?php echo $product['price'] ?><br>
    Pieces: <?php echo $product['pieces'] ?><br>
    Cubic Meters: <?php echo $product['cubicmeters'] ?><br>
<?php endforeach; ?>
于 2013-04-25T19:36:19.667 回答