我的页面中有以下选择选项,我想按顺序随机化。
<select class="selectpicker1 show-menu-arrow span2" onchange="updatePreview();">
<option data-content="<img src='img/render/3-thumb.jpg'>" value="3.jpg">three</option>
<option data-content="<img src='img/render/5-thumb.jpg'>" value="5.jpg">five</option>
<option data-content="<img src='img/render/1-thumb.jpg'>" value="1.jpg">one</option>
<option data-content="<img src='img/render/2-thumb.jpg'>" value="2.jpg">two</option>
<option data-content="<img src='img/render/4-thumb.jpg'>" value="4.jpg">four</option>
<option data-content="<img src='img/render/6-thumb.jpg'>" value="6.jpg">six</option>
<option data-content="<img src='img/render/7-thumb.jpg'>" value="7.jpg">six</option>
</select>
到目前为止,我有以下代码,但它不起作用,这是随机化订单的最简单方法吗?并且代码有问题吗?
<?php
$options=array( '<option data-content="<img src="img/render/3-thumb.jpg">" value="3.jpg">three</option>',
'<option data-content="<img src="img/render/5-thumb.jpg">" value="5.jpg">five</option>',
'<option data-content="<img src="img/render/1-thumb.jpg">" value="1.jpg">one</option>');
shuffle($options);
echo '<select class="selectpicker1 show-menu-arrow span2" onchange="updatePreview();">';
foreach ($options as $picker) {
echo '$picker'; }
echo '</select>'; ?>
答案 0 :(得分:5)
变量在单引号内时不进行插值。
echo '$picker'; }
应该只是:
echo $picker; }
此外,为了修复HTML标记,您可以简单地转义引号,如下所示:
'<option data-content=\'<img src="img/render/3-thumb.jpg">\'
value="3.jpg">three</option>'
而且,为了缩短这一点,您可以使用简单的implode()
语句替换foreach
循环,如下所示:
shuffle($options);
echo '<select class="selectpicker1...">';
echo implode("\n", $options);
echo '</select>';
答案 1 :(得分:0)
我们的代码有两个问题。
您的代码首先出现的问题是数组
使用方法:
$options=['data1','data2','data3'];
不
$options=array('data1','data2','data3')
你的代码错误的第二件事是字符串输出(我认为只适用于mysql)
使用方法:
echo $var;
不
echo '$var';
答案 2 :(得分:0)
简单选项:
您的每个选项在数组中编码如下:
'<option data-type="<img src=\"img/render/5-thumb.jpg\">" value="5.jpg">five</option>'
将您的foreach
语句替换为内爆语句echo implode('', $options);
更复杂的选项
在数组中对每个选项进行编码,如下所示:
$options = array(
array('img/render/5-thumb.jpg', '5.jpg'. 'five'),
array('img/render/3-thumb.jpg', '3.jpg'. 'three'),
array('img/render/1-thumb.jpg', '1.jpg'. 'one')
);
然后将您的foreach
语句替换为:
foreach ($options as $option) {
echo '<option data-type="<img src=\"'.$option[0].'\">" value="'.$option[1]'">'.$option[2].'</option>';
}