如何在php变量中存储HTML Select元素?

时间:2013-10-28 03:43:02

标签: php html html-select

我希望能够存储以下select元素,在构造它的php foreach循环中,在变量内部,然后可以包含在动态创建的表单中。(前两行只显示了什么$ statement和$ length是。)我尝试的解决方案是在下面,但它不会让我在变量中放置一个foreach循环。

   //$statement = 'in %s days %s will have the most followers'
   //$lengths = array([0]=>'3 days',[1]=>'4 days',[2]=>'6 days')

   <select name="timeframe">  
     <?php foreach($lengths as $length)
     {
       echo "<option value = " . $length . "/>" . $length . "</option>";
     }?> 
    </select> 

这是我的第一个attemt解决方案(失败):

<?php
 $select_a = '<select name="timeframe">' .  
   foreach($lengths as $length)
 {
   echo "<option value = " . $length . "/>" . $length . "</option>";
 } . '</select>';

 $select_b = '<select name="celebrity">' . 
   foreach($names as $name)
 {
   echo "<option value = " . $name . "/>" . $name . "</option>";
 } . '</select>';?>

我这样做的原因是因为数组($ length和$ names)将以序列化形式存储在数据库中(然后未序列化以便能够在此处循环),并且在第三个字段中将是%s占位符的声明。最终结果是我可以在html表单元素中回显下面的内容。

1 个答案:

答案 0 :(得分:1)

不是使用echo和新变量,而是使用$ select_a。= X.。=运算符将值或字符串添加到变量中,而不是替换旧变量。

所以在你的情况下你可以写:

$select_a = '<select name="timeframe">';  
foreach($lengths as $length)
{
$select_a .= "<option value = " . $length . "/>" . $length . "</option>";
} 
$select_a .= '</select>';

$select_b = '<select name="celebrity">'; 
foreach($names as $name)
{
$select_b .= "<option value = " . $name . "/>" . $name . "</option>";
}
$select_b .= '</select>';