![](/img/trans.png)
[英]codeigniter - use model result in controller to process another model query
[英]Codeigniter - loop through post information passing value to model query and outputting result
我將表單數據傳遞給新的控制器/視圖。
我想遍歷$ _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'); }
這不能正常工作。 如何在視圖上輸出/顯示查詢結果? 這可以做到,如果沒有,這是如何通過最佳實踐實現的?
一如既往地謝謝,
您應該使用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 } ?>
$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; ?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.