2016-03-12 70 views
0

您好我有數組年在我的控制器:改變一個函數到第二按鈕點擊

public function getNextYear() { 

    $years = $this->getYears(); 
    foreach ($years as $key => $value) { 
     $y[] = $value + 1; 
    } 
    return $y; 
} 

我在指數顯示此:

<?php foreach ($years as $year): ?> 

     <div class=""> 

      <?= $year; ?><br> 

     </div> 

    <?php endforeach; ?> 
<?php endif; ?><br> 

這是possibe至一年使用add只有PHP?

回答

1

沒有。您將需要使用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; 
    } 
+0

你能告訴我更多細節嗎?我的功能是什麼$開始?我只想改變我的索引中的第一個foreach。在thi foreach我有$年後點擊我想那裏$ nextYear值 – qwerty

+0

已更新。試試這個 – Kezzbr

+0

但是改變我的按鈕功能。我知道我的函數工作,我檢查了這與var_dump我只想知道我能做些什麼,使按鈕做一些行動來重新加載頁面,並顯示我從第二功能 – qwerty

相關問題