php中的选择选项

时间:2013-12-15 13:51:52

标签: php html arrays selection option

我正在开发一个PHP测验游戏,目前我正在努力将PHP和HTML混合在一起,因为我有更多以前的html经验。测验选择有以下选择选项:

<select style="width: 300px" name="quizes" size="10">
  <option onClick="window.location = 'quiz1.php'" >Quiz 1</option>
  <option>Quiz 2</option>
  <option>Quiz 3</option>
  <option>Quiz 4</option>
  <option>Quiz 5</option>
</select>

我被告知可以使用php代码进行此操作,以便在创建时将新的quizes添加到其中。有人可以帮我解决这个问题吗,我不太明白这是怎么回事。

我没有使用数据库作为我的测验,每个测验是/将在一个页面上,问题存储在数组中,问题的处理在同一页面上。

2 个答案:

答案 0 :(得分:0)

试试这个。它假定进行选择的页面与您的测验php页面位于同一目录中。

<?php
$dir    = getcwd();
$files = scandir($dir);

foreach($files as $file)
{
    if (strpos($file,'quiz') !== false)
    {
        $fileName = ucfirst(str_replace('.php', '', $file));
        $quizPages[] = array('name'=>$fileName,'file'=>$file);
    } 
}
?>

<select style="width: 300px" name="quizes" size="10">
<?php
foreach($quizPages as $quiz)
{
    echo '<option name="' . $quiz["name"] . '" onClick="window.location = \'' . $quiz["file"] . '\'" >' . $quiz["name"] . '</option>';
}
?>
</select>

更新评论。

这可能是因为你在该目录中也有一个名为Quizes的文件,它在foreach循环中捕获了单词quiz。我建议改变这一行

if (strpos($file,'quiz') !== false)

到此

if (strpos($file,'quiz') !== false && strpos($file,'quizes') === false)

进一步更新。 如果您想要测验的自定义名称,我建议您使用以下命名约定quiz_desired_name.php。例如,如果我有一个测验称为你是什么动物。然后文件名应该是quiz_what_animal_are_you.php,因此用下划线分隔单词。

然后只需替换此行

$fileName = ucfirst(str_replace('.php', '', $file));

用这个

$fileName = ucfirst(str_replace(array('.php','quiz_','_'), array('','',' '), $file));

答案 1 :(得分:0)

如果你想在php中使用html标签,添加一个

例如:

 echo"<select>";
每个html标签之前