我的页面中有这段代码:
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; ?>
答案 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';
三元运算符的例子
(未测试的)