当我执行if条件时,切换情况值传递不工作


switch case value passing not working when i execute if condition

这是我用来显示下拉值的代码:

 switch ($_POST['input_102']) {
     case 14:
            $mailling=$mailling.'<li>Priority mail (domestic/US only)   <span>$14.00</span></li> ';
        break;
     case 40:
            $mailling=$mailling.'<li>Courier/Express (domestic/US only) <span>$40.00</span></li> ';
        break;
     case 14:
             $mailling=$mailling.'<li>Air Mail (overseas/international) <span>$14.00</span></li> ';
         break;
     case 80:
            $mailling=$mailling.'<li>Courier/Express (overseas/international) <span>$80.00 </span></li> ';
         break;
 }

这里我遇到了一个问题,我有两个值,比如14。所以我像这样修改了代码。它执行了,但是当if语句执行时,它什么也不显示,而else语句则显示结果:

 switch ($_POST['input_102']) {
       case 14:
             //custom code
            if($_POST['input_13']=='United States'){
                $mailling=$mailling.'<li>Priority mail (domestic/US only)   <span>$14.00</span></li> ';
             }else{
                $mailling=$mailling.'<li>Air Mail (overseas/international) <span>$14.00</span></li> ';
             }
              //custom code end 
           break;
       case 40:
             $mailling=$mailling.'<li>Courier/Express (domestic/US only) <span>$40.00</span></li> ';
           break;
       case 80:
             $mailling=$mailling.'<li>Courier/Express (overseas/international) <span>$80.00 </span></li> ';
           break;
  }                 

我打印了$_POST['input_13'],它的值是美国。为什么我没有得到if的结果

试试这个代码

if($_POST['input_13']==='United States'){

三个等号可以提高精度。

另一种方式是:

if($_POST["input_13"]=="United States"){

加双引号,但影响不大,但是test equal。

总的来说对我来说你的代码是完美的,但是,服务器有时不能正常工作