0

我有一个使用 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>

我不介意使用链接或按钮

请帮助我在这里堆栈,我的大脑被锁定了。

4

3 回答 3

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;
    }
})

于 2013-03-19T17:59:31.133 回答
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']

于 2013-03-22T12:07:00.270 回答
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;  

感谢大家对我的支持和回答。

于 2013-04-02T13:59:42.047 回答