在我创建的网站上,我在一个页面上有三个位置的商店'开放时间'。一个在页眉,一个在正文,一个在页脚。我试图把这些在PHP简单更新时。我写了一个数组:
<?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。
任何帮助都是感激的,我不能处理这个了!
你能做的就是在最上面声明唯一的ID,就像你对$uniqueID=X
所做的那样
然后,每次将$uniqueID
插入DOM时,也增加它。所以:
<?php echo "<span id='".$uniqueID++."'>STUFF IN SPAN</span>"; ?>
如果$uniqueID
是int,"++"将增加它,因此每次插入它时都保持一个唯一的值。
不是在顶部声明一个唯一的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
属性不能以数字开头(否则它不是有效的HTML),所以您可能应该在uniqid()之前放一些字母,就像我对uid
所做的那样。此外,您缺少id
值周围的引号。