Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.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页面上运行多个Else If语句_Php_If Statement - Fatal编程技术网

在PHP页面上运行多个Else If语句

在PHP页面上运行多个Else If语句,php,if-statement,Php,If Statement,我想知道在一个PHP页面上运行两个(或更多)if语句的最佳方法是什么。这是表单的一部分,用于查找票证类型和天数。我需要在一个页面上运行其中两个语句,但我似乎不起作用,因为一旦它遇到一个真正的语句,它就会停止。我怎样才能让它工作 <?php if($ticket_type=='Child (5 & Under)'){ echo " <select name=\"ticket_type[]\"> <option value=\

我想知道在一个PHP页面上运行两个(或更多)if语句的最佳方法是什么。这是表单的一部分,用于查找票证类型和天数。我需要在一个页面上运行其中两个语句,但我似乎不起作用,因为一旦它遇到一个真正的语句,它就会停止。我怎样才能让它工作

<?php
    if($ticket_type=='Child (5 & Under)'){
     echo "
     <select name=\"ticket_type[]\">
       <option value=\"\">Select one...</option>
       <option selected=\"selected\">Child (5 &amp; Under)</option>
       <option>Child (6 - 12)</option>
       <option>Teen (13 - 17)</option>
     </select>";
    }else if($ticket_type=='Child (6 - 12)'){
     echo "
     <select name=\"ticket_type[]\">
       <option value=\"\">Select one...</option>
       <option>Child (5 &amp; Under)</option>
       <option selected=\"selected\">Child (6 - 12)</option>
       <option>Teen (13 - 17)</option>
     </select>";
    }else if($ticket_type=='Teen (13 - 17)'){
     echo "
     <select name=\"ticket_type[]\">
       <option value=\"\">Select one...</option>
       <option>Child (5 &amp; Under)</option>
       <option>Child (6 - 12)</option>
       <option selected=\"selected\">Teen (13 - 17)</option>
     </select>";
    }else{
     echo "
     <select name=\"ticket_type[]\">
       <option value=\"\">Select one...</option>
       <option>Child (5 &amp; Under)</option>
       <option>Child (6 - 12)</option>
       <option>Teen (13 - 17)</option>
     </select>";


  }?>




<?php
        if($days=='1 Day'){
         echo "
         <select name=\"ticket_type[]\">
           <option value="">Select one...</option>
           <option selected=\"selected\">1 Day</option>
           <option>2 Days</option>
           <option>3 out of 4 Days</option>
         </select>";
        }else if($days=='2 Days'){
         echo "
         <select name=\"ticket_type[]\">
           <option value="">Select one...</option>
           <option>1 Day</option>
           <option selected=\"selected\">2 Days</option>
           <option>3 out of 4 Days</option>
         </select>";
        }else if($days=='3 out of 4 Days'){
         echo "
         <select name=\"ticket_type[]\">
           <option value="">Select one...</option>
           <option>1 Day</option>
           <option>2 Days</option>
           <option selected=\"selected\">3 out of 4 Days</option>
         </select>";
        }else{
         echo "
         <select name=\"days[]\">
           <option value="">Select one...</option>
           <option>1 Day</option>
           <option>2 Days</option>
           <option>3 out of 4 Days</option>
         </select>";
        }?>

哎呀,这有点乱。你应该仔细阅读


这是一个测试。。

哎呀,这有点乱。你应该仔细阅读


这是一个测试。。

哦,孩子。。。你为什么把事情弄得这么复杂

<select name="ticket_type[]">
   <option value="">Select one...</option>
   <option <? echo ($ticket_type == 'Child (5 &amp; Under) ? 'selected="selected" : ''; ?>'>Child (5 &amp; Under)</option>
   <option <? echo ($ticket_type == 'Child (6 - 12) ? 'selected="selected" : ''; ?>>Child (6 - 12)</option>
   <option <? echo ($ticket_type == 'Child (13 - 17) ? 'selected="selected" : ''; ?>>Teen (13 - 17)</option>
</select>";

选择一个。。。

哦,孩子。。。你为什么把事情弄得这么复杂

<select name="ticket_type[]">
   <option value="">Select one...</option>
   <option <? echo ($ticket_type == 'Child (5 &amp; Under) ? 'selected="selected" : ''; ?>'>Child (5 &amp; Under)</option>
   <option <? echo ($ticket_type == 'Child (6 - 12) ? 'selected="selected" : ''; ?>>Child (6 - 12)</option>
   <option <? echo ($ticket_type == 'Child (13 - 17) ? 'selected="selected" : ''; ?>>Teen (13 - 17)</option>
</select>";

选择一个。。。

您可以极大地简化代码:

$options = array(
   'Select One' => 'Select One',
   '1 Day' => '1 Day',
   '2 Days' => '2 Days',
   '3 or more' => '3 or More'
);

echo '<select name="ticket_type[]">';
foreach($options as $key => $val) {
   $select = (($key == $days) ? ' selected="selected"' : '');
   echo "<option value=\"", htmlspecialchars($key), "\"$select>", htmlspecialchars($val), "</option>";
}
echo '</select>';
$options=array(
“选择一个”=>“选择一个”,
“1天”=>“1天”,
“2天”=>“2天”,
“3个或更多”=>“3个或更多”
);
回声';
foreach($key=>$val的选项){
$select=(($key==$days)?'selected=“selected”:'';
echo“”,htmlspecialchars($val),“”;
}
回声';

这样,您只有一个指定选择选项的位置,因此如果将来需要添加更多,您只需更改该位置。现在,您必须更改if()块的每一个部分,这将变得繁琐且容易出错。

您可以极大地简化代码:

$options = array(
   'Select One' => 'Select One',
   '1 Day' => '1 Day',
   '2 Days' => '2 Days',
   '3 or more' => '3 or More'
);

echo '<select name="ticket_type[]">';
foreach($options as $key => $val) {
   $select = (($key == $days) ? ' selected="selected"' : '');
   echo "<option value=\"", htmlspecialchars($key), "\"$select>", htmlspecialchars($val), "</option>";
}
echo '</select>';
$options=array(
“选择一个”=>“选择一个”,
“1天”=>“1天”,
“2天”=>“2天”,
“3个或更多”=>“3个或更多”
);
回声';
foreach($key=>$val的选项){
$select=(($key==$days)?'selected=“selected”:'';
echo“”,htmlspecialchars($val),“”;
}
回声';


这样,您只有一个指定选择选项的位置,因此如果将来需要添加更多,您只需更改该位置。现在,您必须更改if()块的每一个部分,这将变得繁琐且容易出错。

我不太明白,您是说第二个
if
块没有运行吗?您可以通过使用
?>
关闭PHP标记,粘贴HTML,然后使用if旁边的
再次打开PHP来打印原始HTML,PHP中有循环/foreach's。通过您的示例,我认为值得您了解它们:-并了解阵列。这将防止您一次又一次地复制相同的文本,而只更改一小部分。最好的规则:不要重复。我不同意,这看起来会打印两个元素。脚本不会在遇到真实条件时停止,它只是跳过该块并继续通过它。当你运行这个脚本时,你会得到什么样的输出?确实,你可以编辑以包含你当前的输出和期望的输出。关于@hakre评论的话题。我建议采用一种干燥(不要重复)的方法,其中每个选项中都有一个
语句。我不太明白,你是说第二个
if
块没有运行吗?你可以通过用
?>
关闭PHP标记,粘贴到HTML中,然后用if旁边的
再次打开PHP来打印原始HTML,PHP中有循环/foreach's。通过您的示例,我认为值得您了解它们:-并了解阵列。这将防止您一次又一次地复制相同的文本,而只更改一小部分。最好的规则:不要重复。我不同意,这看起来会打印两个元素。脚本不会在遇到真实条件时停止,它只是跳过该块并继续通过它。当你运行这个脚本时,你会得到什么样的输出?确实,你可以编辑以包含你当前的输出和期望的输出。关于@hakre评论的话题。我建议使用一种干法(不要重复你自己)方法,其中每个选项都有一个
语句,只要记住冒号语法,你必须使用
elseif
,而不是
,否则如果
(如果OP不知道),这与OP有问题(如果你可以看到已删除的帖子),使用“fancy*功能并不能使它更好、更容易理解。请记住,使用冒号语法时,您必须使用
elseif
,而不是
,否则如果
(如果OP不知道),这与OP有问题(如果您可以看到已删除的帖子),使用“fancy*功能并没有让它变得更好、更容易理解。这可以进一步改进,但它显示了一个非常好的点,+1当然可以,它只是为了显示出消除所有冗余的热情。这确实是一个重要的步骤。这可以进一步改进,但它显示了一个非常好的点,+1当然可以,它只是为了显示出摆脱所有冗余的热情。事实上,这是这条道路上的一个重要步骤。