我有一个使用kohana从数据库调用的数组3.3我已经将数据输入到视图中,我可以使用print_r($ variable)获取它。我想根据数组中的数据创建一个movenext,movefirst,moveprevious和movelast按钮。
我的模型看起来像这样
public function get_customer_list(){
$cust_list= DB::select('*')->from('customers')
->order_by('id','ASC')
->execute()
->as_array();
//print_r($cust_list);
return $cust_list;
我的控制器看起来像这样
$id=@$_POST["id"];
//echo $id;
$amend = Model::factory('amendments')->get_customer_list(@$d);
$this->page_title = 'amending';
$this->content = View::factory('forms/amendment_next');
//$this->rightwidget =view::factory('rightwidget');
$this->amend = $amend;
$this->next = $id;
我的观点看起来像这样
foreach ($amend[0] as $key=>$value){
echo '<p><span>'.$key.'</span><input id="'.$next.'" class="contact" type="text" name="'.$key.'"value="'.$value.'" /></p>';
}
<a href="#" id="getnext">Next Record</a>
<a href="javascript:void(0);" id="previous">Previous Record</a><button >Next Record</button><button>Last Record</button>
我不介意使用链接或按钮
请帮助我堆叠,我的大脑被锁定了。答案 0 :(得分:0)
在你的视图中尝试这个,只需要一些javascript代码(我使用过jQuery)
--- next()示例---
$(document).ready(function (){
var customers = <?php echo json_encode($amend) ?>;
var count = 0;
function nextItem(){
if(count >= customers.length )return;
console.log("customer:",customers[count]['id'],customers[count]['name']);
count =++count;
}
})
答案 1 :(得分:0)
您的控制器应如下所示:
$id=@$_POST["id"];
//echo $id;
$amend = Model::factory('amendments')->get_customer_list(@$d);
$this->page_title = 'amending';
$inputArray = array('amend'=>$amend, 'id'=>$id);
$this->content = View::factory('forms/amendment_next',$inputArray);
//$this->rightwidget =view::factory('rightwidget');
您必须将要在视图中使用的变量作为关联数组直接传递给工厂,或者必须使它们全局可用于工厂。
您的观点应如下所示:
<?
foreach ($amend[0] as $key=>$value){
echo '<p><span>'.$key.'</span><input id="'.$next.'" class="contact" type="text" name="'.$key.'"value="'.$value.'" /></p>';
}
?>
<a href="something.php?id=<? echo $id;?>" id="getnext">Next Record</a>
<a href="javascript:void(0);" id="previous">Previous Record</a><button >Next Record</button><button>Last Record</button>
将$inputArray
传递给工厂后,可兑换$amend
将填充$inputArray['amend']
,$id
将填充$inputArray['id']
答案 2 :(得分:0)
我用你的例子来预测自己的问题。现在它解决了这里的问题 控制器现在看起来像这样
$id=@$_GET["id"];
$amend = Model::factory('amendments')->get_customer_list(@$d);
$this->page_title = 'I&M CRB Online App amending';
$this->content = View::factory('forms/amendments');
//$this->rightwidget =view::factory('rightwidget');
$this->amend = $amend;
$this->next = $id;
视图看起来像这样
<?php
if (!$next){
$next = "0";}
$nextid = $next+"1";
$previd=$next-"1";
?>
<a href="<?php echo HTTP_PATH; ?>/amend/getnext/?id=<? echo "0"; ?>">First Record </a> |
<a href="<?php echo HTTP_PATH; ?>/amend/getnext/?id=<? echo $previd;?>">Previous Record</a> |
<a href="<?php echo HTTP_PATH; ?>/amend/getnext/?id=<? echo $nextid;?>">move next</a> |
<a href="<?php echo HTTP_PATH; ?>/amend/last">Last Record</a>
<?php
foreach (@$amend[@$next] as $key=>$value){
echo "<p><span>".$key."</span><input class='contact' type='text' name='".$key."'value='".$value."' /></p>";
}
?>
对于最后一条记录,我必须使用不同的模型函数
public function get_last_customer(){
$last_customer= DB::select()->from('customers')
->order_by('id','DESC')
->limit(1)
->execute()
->as_array();
return $last_customer;
感谢大家的支持和你给我的答案。