沒有。您將需要使用Ajax將更多內容加載到視圖中。另外,你會檢查是否有更多的年份加載,然後顯示一個按鈕,用Javascript/Jquery調用Ajax。這個請求會將內容直接放到你的頁面中,手段,你的函數getNextYear()必須返回一個Json或Html內容。
如果結果是Json,則使用AJax回調,格式爲HTML。
這一切後,與按鈕一起,把一個div,一些階級把更多的內容:
<button id="callAjaxNextYears"></button>
<div class="nextYears"></div>
不要忘了,在你的Ajax發送的最後一年表現。然後,你可以使用類似:
<button value="2012"></button>
而在你的功能,必須認識到一個_GET或_POST或帕拉姆:
getNextYear($start){}
由於更好的做法,幾年這一切名單必須由ajax實現,以避免項目中的標準代碼。或者,您可以瞭解更多關於「AngularJS」的信息。
試着改變你的PHP函數與Ajax調用更好的工作:
public $actualYear;
public $maxYear = 2030; // Just a exemple, otherwhise, will create infinite years list
public static function getYears() {
if(isset($this->actualYear)){
$nowYear = $this->actualYear;
} else {
$nowYear = date("Y");
$this->actualYear = 2010;
}
if($nowYear < $maxYear){
$i = 0;
for ($yearNum = $this->actualYear; $yearNum <= $nowYear; $yearNum++) {
$year[] = $yearNum;
$i++;
if ($i == 3)
break;
}
}
return $year;
}
public function getNextYear() {
$this->actualYear = $_POST['start']; // Wherever your ajax has sended, can be a _GET as well
$years = $this->getYears();
foreach ($years as $key => $value) {
$y[] = $value + 1;
}
return $y;
}
如果選擇不使用AJAX,試試這個:
<a href="?start=2012">Load more years</a>
然後在控制器:
public $maxYear = 2030; // Just a exemple, otherwhise, will create infinite years list
public static function getYears() {
if(isset($_GET['start'])){
$nowYear = $_GET['start'];
} else {
$nowYear = date("Y");
$this->actualYear = 2010;
}
if($nowYear < $maxYear){
$i = 0;
for ($yearNum = $this->actualYear; $yearNum <= $nowYear; $yearNum++) {
$year[] = $yearNum;
$i++;
if ($i == 3)
break;
}
}
return $year;
}
你能告訴我更多細節嗎?我的功能是什麼$開始?我只想改變我的索引中的第一個foreach。在thi foreach我有$年後點擊我想那裏$ nextYear值 – qwerty
已更新。試試這個 – Kezzbr
但是改變我的按鈕功能。我知道我的函數工作,我檢查了這與var_dump我只想知道我能做些什麼,使按鈕做一些行動來重新加載頁面,並顯示我從第二功能 – qwerty