PHP - 使用数组值来满足特定条件并执行操作

时间:2016-09-23 10:26:55

标签: php mysql arrays

我的页面中有这段代码:

NameError: global name 'Size' is not defined.

此代码将通过表单将设备状态发送到另一页。

当我"收到"那些值通过另一页上的POST方法,如果数组中的所有状态="结束",我需要填写一个变量。如果所有数组[%i] ="结束"变量$ status应填充:"结束"否则如果只有一个作为不同的值,变量应填充"待定&#34 ;;

我尝试了以下代码,但它无效。你能给我一些建议吗?感谢

  $options = array("Repairing", "In guarantee", "Ended", "On Hold", "Waiting for quote");
?>
 <select name='estadoRep[]' id='estadoRep'>
     <?php foreach ($options as $option): ?>
         <option value="<?php echo $option; ?>"<?php if ($estadoR[$i] == $option): ?> selected="selected" <?php endif; ?>>
             <?php echo $option; ?>
         </option>
     <?php endforeach; ?>

3 个答案:

答案 0 :(得分:1)

你的php代码中有一个synthax错误:       if($ estadoEquip [$ i] =='结束')       $ status ='结束';

你忘记了双“==”,所以你的$ estadoEquip都等于“已结束”。

答案 1 :(得分:0)

你应该把&#34; ==&#34;而不是&#34; =&#34;在&#34; if($ estadoEquip [$ i] =&#39;结束&#39;)&#34; 否则该条件将始终为真,因为变量将始终能够获得该值。一个简单的&#34; =&#34;不是比较。

答案 2 :(得分:0)

我可以看到一些基本错误:

1 estadoRep(name)不需要是一个数组,除非你做了一些棘手的事情来使它成为一个多重选择。

 <select name='estadoRep' id='estadoRep'>
     <?php foreach ($options as $option): ?>
         <option value="<?php echo $option; ?>"<?php if ($estadoR[$i] == $option): ?> selected="selected" <?php endif; ?>>
             <?php echo $option; ?>
         </option>
     <?php endforeach; ?>

然后,您的表单处理程序只需要使用该单个传入变量。

所以它更简单,更易于理解,如果不是“结束”的话。其他状态为待定,

  $estadoEquip   =   $_POST['estadoRep'];

  if ($estadoEquip == 'Ended'){
    $status= 'Concluded';
  } else { 
    $status= 'Pending'; 
  }

也许有争议,但你可以简单地把它写成:

$status = ($_POST['estadoRep'] == 'Ended') ? 'Concluded' : 'Pending';

三元运算符的例子

(未测试的)