2016-02-14 62 views
1

我正在處理一個帶有PHP的flash消息,但我想爲每個flash消息都設置一個特定的標題。我對閃光燈消息容器在我的header.php設置,所以我可以在我的網站到處使用這個系統:PHP:我如何添加一個特定的標題到我的Flash消息?

 <?php if(isset($_SESSION["flash-message"])): ?> 
      <?php foreach($_SESSION["flash-message"] as $type => $message): ?> 
      <div class="alert alert-<?= $type; ?>"> 
       <p><?= $message; ?></p> 
      </div> 
      <?php endforeach; ?> 
     <?php endif; ?> 

要執行它,我用這個:

$_SESSION["flash-message"]["success"] = "Test"; 

所以,我有即:

http://prntscr.com/a2ylze

現在,我想有一個標題,你知道嗎?類似的東西:

$_SESSION["flash-message"]["title" = "The title"]["success"] = "The message" 

就是這樣。我希望消息上方的標題。

回答

2

簡短回答:使用數組或對象來存儲具有相應標題的消息。

$_SESSION["flash-message"]["success"] = array("Title", "The Message"); 

而且你的代碼會像下面:

<?php if(isset($_SESSION["flash-message"])): ?> 
     <?php foreach($_SESSION["flash-message"] as $type => $message): ?> 
     <div class="alert alert-<?= $type; ?>"> 
      <h2><?= $message[0]; ?></h2> 
      <p><?= $message[1]; ?></p> 
     </div> 
     <?php endforeach; ?> 
    <?php endif; ?> 

編輯: 如果你有不止一個成功的消息時會發生什麼?您當前的代碼不支持多個「相同類型」的消息。它應該是:

$_SESSION["flash-message"]["success"][] = array("Title", "The Message"); 

存儲多個「相同類型」的消息。編輯2: 你也可以使用對象方法 - 更具可讀性。還包含上面提到的多種消息能力。

​​
+0

好,謝謝!標題可以有一個特定的變量?我不想有$ message [0]和$ message [1]。我想爲標題和消息的$消息標題爲$。 –

+0

請在我的回答中查看EDIT-2。它通過使用消息類對象更「可讀」。我使用stdClass,但你甚至可以爲此創建自己的自定義消息類。這只是你的一個起點。希望能幫助到你。 – smozgur

1

$_SESSION["flash-message"]消息陣列消息應該有一個EVENT_TYPE,一個標題內容

您可以用多種形式對消息建模,其中關聯陣列。看到這個例子與關聯數組建模消息

$a_message = [ 
    "event_type" => "success", 
    "title" => "The title" 
    "content" => "The message" 
]; 

通過這種方式,你可以實現你的的foreach循環像這樣:

<?php if(isset($_SESSION["flash-message"])): ?> 
    <?php foreach($_SESSION["flash-message"] as $message): ?> 
    <div class="alert alert-<?= $message["event_type"]; ?>"> 
     <h1><?= $message["title"]; ?></p> 
     <p><?= $message["content"]; ?></p> 
    </div> 
    <?php endforeach; ?> 
<?php endif; ?> 
相關問題