我需要一些帮助。我需要创建一个下拉列表,然后当提交选项时,必须运行php脚本。复杂的是我不能硬编码任何值。我需要它'动态创建'
的config.php
$number_Of_Option="3"
$Option_One_Name="Cars"
$Option_One_Year="2000"
$Option_One_Colour="Blue"
$Option_Two_Name="Houses"
$Option_Two_Year="2003"
$Option_Two_Colour="Pink"
$Option_Three_Name="Bikes"
$Option_Three_Year="1990"
$Option_Three_Colour="Orange"
现在我需要下拉列表中的下拉名称为“汽车”,“房屋”,“自行车”,但它们必须是变量的,所以如果我改变“汽车”,它将会改变。
然后当提交选项时(在这种情况下为选项二)我需要将$ Option_Two_Year和$ Option_Two_Colour传递给脚本,其中这两个变量是脚本中的变量。所以脚本总是一样的,但是如果选择了下拉,那么它使用变量1,如果是2,那么它使用变量2等。我还需要它为无数个选项工作,所以在任何时候我都可以进入配置.php并添加另一个带有自己变量的选项。它可以使用数组和jquery,如果这更容易或必要。 感谢
答案 0 :(得分:0)
你知道他们为此发明了阵列吗?如果您有一个合理的PHP版本(我认为1.0或更高版本;)),您可以存储以下数据:
$options = array(
'Cars' => array('Year'=>'2000', 'Colour'=>'Blue'),
'Houses' => array('Year'=>'2003', 'Colour'=>'Pink'),
'Bikes' => array('Year'=>'1990', 'Colour'=>'Orange'));
然后你可以得到所选的选项,并通过该选项找到匹配的值:
$option = $_GET['option'];
if (array_key_exists($option, $options))
{
$selectedYear = $options[$option]['Year'];
$selectedColour = $options[$option]['Colour'];
// Process them.
}
如果您不想(或不允许)使用数组,则需要匹配每个变量:
if ($option === $Option_One_Name)
{
$selectedYear = $Option_One_Year;
$selectedColour = $Option_One_Colour;
}
elseif ($option === $Option_Two_Name)
{
...
当然,你可以加快一点速度。您可以创建一个数字数组,并按名称获取匹配变量
$numbers = array('One', 'Two', 'Three');
foreach($numbers as $number)
{
$optionVar = 'Option_' . $number . '_Name';
if ($option === $$optionVar)
{
$yearVar = 'Option_' . $number . '_Year';
$selectedYear = $$yearVar;
...
}
}
该代码更复杂,但如果您获得更多选项,则无需扩展。您只需要更新Numbers数组。 但是,正如您所看到的,使用数组会更容易。
答案 1 :(得分:0)
制作外部文件,例如。 options.php,使用以下代码:
$options = array();
$options["cars"] = array("2000","blue");
$options["houses"] = array("2003","pink");
$options["bikes"] = array("1990","orange");
使用include("options.php");
在表单页面中,执行:
include("options.php");
echo '<select name="option">';
foreach($options as $name => $values)
{ echo '<option value="' .$name .'">' .$name .'</option>';
}
echo '</select>';
在解析脚本中,执行:
include("options.php");
$chosenValue = $_POST['option'];
list($year,$colour) = $options[$chosenValue];
现在$year
和$colour
将包含所选名称的选项的年份和颜色。