我无法使用一些PHP代码。
这是功能:
function getCellColor($dow) {
if (isset($_POST[$dow.alternative])) {
return "style=\"background: yellow; color:#fff;\"";
}
/*elseif (isset($_POST[$dow.shifthours]) && ($_POST[$dow.shifthours] == "OFF")) {
return "style=\"background: red; color:#fff;\"";
}*/
if ($_POST[$dow.shifthours] == "OFF") {
return "style=\"background: red; color:#fff;\"";
}
else {
return "style=\"background: green; color:#fff;\"";
}
}
以下是输出到浏览器的部分:
if (isset($_POST['submit'])) {
echo preTableFrmt();
foreach($engineer as $a => $b) {
echo "| [[$engineer[$a]]] || ".getCellColor('mon')." | $monday[$a] || ".getCellColor('tues')." | $tuesday[$a] || ".getCellColor('wed')." | $wednesday[$a] || ".getCellColor('thur')." | $thursday[$a] || ".getCellColor('fri')." | $friday[$a] || ".getCellColor('sat')." | $saturday[$a] || ".getCellColor('sun')." | $sunday[$a] <br />";
}
echo postTableFrmt();
}
else { echo "Waiting for data..."; }
“替代”部分正在运作。如果选中它,它将覆盖所有内容并执行“黄色”背景。
没有的部分是当我将“Alternative”取消选中(默认)并且下拉设置为OFF(从下拉列表中选择一个表格选项)时,它返回“绿色”背景。如果我将它设置为另一个选项(而不是OFF),它仍然会进入“绿色”背景。如果设置为OFF,则背景需要为红色,其他任何内容都应为“绿色”。
表单示例HTML:
<select name="tuesshifthours[]" id="tuesshifthours">
<optgroup label="Select Shift Time">
<option value="OFF">OFF</option>
<option value="8am5pm">8AM-5PM</option>
<option value="7am7pm">7AM-7PM</option>
<option value="7pm7am">7PM-7AM</option>
</optgroup>
</select>
<label for="tuesalternative">A?</label>
<input type="checkbox" name="tuesalternative[]" id="tuesalternative" value="on" />
此外,这是我的$ _POST数据(返回绿色背景):
["monshifthours"]=>
array(1) {
[0]=>
string(3) "OFF"
}
$ _ POST数据(也返回绿色背景):
["monshifthours"]=>
array(1) {
[0]=>
string(3) "7am7pm"
}
答案 0 :(得分:2)
问题是你的帖子变量是数组而不是字符串。试试这个:
if ($_POST[$dow . 'shifthours'][0] == "OFF") { ... }
答案 1 :(得分:0)
非常难的代码......试着清理你的大脑并轻松写下来:)
因此。 $ _POST [$ dow .hifthours'] cat不等于“OFF”,因为它包含子数组。
正确的方式:
$_POST[$dow.'shifthours'][0] == "OFF"