Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我必须设置一系列下拉列表输入控件,但是除了手动生成一堆if语句之外,还有什么方法可以设置它呢?_Php_Html - Fatal编程技术网

Php 我必须设置一系列下拉列表输入控件,但是除了手动生成一堆if语句之外,还有什么方法可以设置它呢?

Php 我必须设置一系列下拉列表输入控件,但是除了手动生成一堆if语句之外,还有什么方法可以设置它呢?,php,html,Php,Html,我在一个网站上工作,该网站存储不同车辆的维护事件。但是我需要按部分对它们进行分类,但是我很难弄清楚如何构建页面。他们需要先选择一个零件,然后选择一个位置,有时甚至更进一步。我曾想过使用Javascript生成额外的下拉框,但如果必须生成一堆if、then语句,则效率似乎很低。有没有更有效的方法 编辑:我的伪代码如下 onChange=>changeFunction() changeFunction{ if(ddlLocation=brakes){ add select boxes, p

我在一个网站上工作,该网站存储不同车辆的维护事件。但是我需要按部分对它们进行分类,但是我很难弄清楚如何构建页面。他们需要先选择一个零件,然后选择一个位置,有时甚至更进一步。我曾想过使用Javascript生成额外的下拉框,但如果必须生成一堆if、then语句,则效率似乎很低。有没有更有效的方法

编辑:我的伪代码如下

onChange=>changeFunction()


changeFunction{
if(ddlLocation=brakes){
add select boxes, populate with the individual parts
}else if (...){
}
}

我必须了解更多有关特定应用程序的信息,以便更好地提供帮助,但这里有一个更好的方法

从动态的角度考虑,您有100个具有唯一名称的输入,使用模式中具有方法名称的方法创建类,这样您就可以循环输入名称,并根据方法命名约定检查可用的方法,并调用它来专门处理该类型的输入

在这种情况下,如果设置正确,您可以将所有输入一次传递到一个循环,该循环可以在不使用if、else的情况下处理随机输入

例如:

$carparts = new CarParts();
foreach ($_POST as $name=>$value) {
    $method = strtolower($name) . 'Action';
    if (method_exists($carparts,$method)) {
        $carparts->$method($value);
    }
}
在大多数情况下——但取决于应用程序——最好使用switch语句而不是链式if语句。Switch语句通常也比多个if条件快

在JavaScript中,当只需要计算一个或两个条件时,if语句通常比switch语句快。当有两个以上的条件,并且条件很简单(不是范围)时,switch语句往往会更快。这是因为在switch语句中执行单个条件所需的时间通常少于在if语句中执行单个条件所需的时间,这使得switch语句只有在存在大量条件时才是最优的

Javascript案例语句示例:

switch(n)
{
 case 1:
   execute code block 1
   break;
 case 2:
   execute code block 2
   break;
 default:
   code to be executed if n is different from case 1 and 2
 }

你能分享你的代码吗?所以人们可以理解你的问题所在。我现在没有任何实际的代码。这是概念性的。问题是我不知道构建表单的最佳方法。我可以做一系列的if->thens,但那似乎是很多不必要的输入。有什么方法我可以使用吗?好的,你可以循环通过一个数组,你可以手工制作,也可以不用手工制作,然后回送它们生成一个表单。