根据通过config.php的用户输入动态创建下拉

时间:2011-05-19 11:02:28

标签: php jquery forms

我需要一些帮助。我需要创建一个下拉列表,然后当提交选项时,必须运行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,如果这更容易或必要。 感谢

2 个答案:

答案 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将包含所选名称的选项的年份和颜色。