2014-03-28 18 views
0

在我創建的網站上,我在一個頁面上的三個位置有商店「營業時間」。一個在頭上,一個在身上,另一個在腳下。我試圖在更新時使用PHP來簡化它們。我寫了一個數組:爲數組中的每個項目創建唯一的ID,即使在頁面上多次調用

<?php 
$UniqID = uniqid(day); 
$day1 = 'Mon-Fri: 9:00a-5:00p'; 
$day2 = 'Saturday: 9:00a-1:00p'; 
$day3 = 'Sunday: CLOSED'; 
$days = array(
    "1" => "<span id=" . $UniqID . " class='editable-text'>" . $day1 . "</span>", 
    "2" => "<span id=" . $UniqID . " class='editable-text'>" . $day2 . "</span>", 
    "3" => "<span id=" . $UniqID . " class='editable-text'>" . $day3 . "</span>",< 
); 
?> 

,然後我打電話到頁面上這樣:

<span>Address | Phone <br/> Our Hours: <?php echo $days[1] ?>, <?php echo $days[2] ?>, <?php echo $days[3] ?></span> 

我是,我需要一個唯一的ID的所有時間,這些被稱爲頁面的問題,顯然這給了1,2和3的唯一ID--但是如果我在頁面上調用同樣的東西2或3次,那麼所有三個第一個實例都有相同的ID,等等。

所以總結一下,我想創建一個存儲上述時間的數組,並且能夠在需要時多次調用它們到頁面中,但是無論它們出現在哪裏,都會獲得唯一的ID。

任何幫助表示讚賞,我無法處理這個了!

回答

0

你可以做的是,在最高層宣佈的唯一標識,就像你有$uniqueID=X

然後,每次插入$uniqueID到DOM時間,增加它。所以:

<?php echo "<span id='".$uniqueID++."'>STUFF IN SPAN</span>"; ?>

如果$uniqueID是int,該「++」將增加它,從而保持每它插入時間唯一的一個。

+0

謝謝 - ++的作品將爲我的應用程序! – user3207047

0

不是在頂部聲明一個唯一ID,而是每<span>聲明一次。也可以用可變的變量聲明它在一個循環中,像這樣:

$day1 = 'Mon-Fri: 9:00a-5:00p'; 
$day2 = 'Saturday: 9:00a-1:00p'; 
$day3 = 'Sunday: CLOSED'; 
for ($i = 1; $i <= 3; $i++) { 
    $days[$i] = "<span id='uid" . uniqid() . "' class='editable-text'>" . ${'day'.$i} . "</span>"; 
} 

這將產生類似:

Array 
(
    [1] => <span id='uid53350c2f730eb' class='editable-text'>Mon-Fri: 9:00a-5:00p</span> 
    [2] => <span id='uid53350c2f73156' class='editable-text'>Saturday: 9:00a-1:00p</span> 
    [3] => <span id='uid53350c2f731d0' class='editable-text'>Sunday: CLOSED</span> 
) 

注意,id屬性cannot start with a number(或者它不是有效HTML),所以你可能應該在uniqid()之前加上一些字母,像我一樣(使用uid)。此外,您錯過了id值附近的引號。

+0

感謝您的貢獻!不幸的是,我仍然無法完成工作......儘管我結合了你們的一些迴應,並且在任何情況下都獲得了唯一的ID。我需要一個獨一無二的ID用於我正在整合的內容編輯器工具,這是一個真正的痛苦。僅供參考,我在我的身份證前寫了一封信......我把它定義爲uniqid(天)。所以這一天會在前面打印。但你說得對,我忘了引號...... – user3207047

相關問題