我真的很擅长PHP。所以,是的,这段代码很简单。但是如果可能的话,我宁愿让这段代码工作。谢谢。
PHP代码的目的
技术上有两个领域,男女性别。我试图触发一个声明,假设一个人为两者选择0,告诉他们填写其中一个,否则,如果为空,填写它,否则,通过test_input
函数测试它在底部。
我不断得到的是一个始终如一的错误:
PHP Parse error: syntax error, unexpected '[', expecting ')'
关于PHP代码的第一行。我已经对代码进行了如此多的讨论,但无法弄清楚如何修复它。
PHP代码
if ((($_POST["male"]) === "") && ($_POST(["female"]) === "")) {
$quantityErr = "pls fill in one of the genders";
elseif (empty($_POST(["male"]))
$maleErr = "# of people (gender male) required";
else
$male = test_input($_POST["male"]);
}
HTML字段代码
<div class="field">
<label>* Number of People</label>
<select class="ui dropdown" name="male">
<option value="">Gender Male</option>
<option <?php if ($male === 0 ) echo 'selected' ; ?> value="0">0</option>
<option <?php if ($male == 1 ) echo 'selected' ; ?> value="1">1</option>
<option <?php if ($male == 2 ) echo 'selected' ; ?> value="2">2</option>
<option <?php if ($male == 3 ) echo 'selected' ; ?> value="3">3</option>
<option <?php if ($male == 4 ) echo 'selected' ; ?> value="4">4</option>
<option <?php if ($male == 5 ) echo 'selected' ; ?> value="5">5</option>
<option <?php if ($male == 6 ) echo 'selected' ; ?> value="6">6</option>
<option <?php if ($male == 7 ) echo 'selected' ; ?> value="7">7</option>
<option <?php if ($male == 8 ) echo 'selected' ; ?> value="8">8</option>
<option <?php if ($male == 9 ) echo 'selected' ; ?> value="9">9</option>
<option <?php if ($male == 10 ) echo 'selected' ; ?> value="10">10</option>
</select>
<?php if(isset($maleErr)) print ('<span class="error">* ' . $maleErr . '</span>'); ?>
<?php if(isset($quantityErr)) print ('<span class="error">* ' . $quantityErr . '</span>'); ?>
</div>
测试功能
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
答案 0 :(得分:0)
你写的语法不正确
试试这个
if ((($_POST["male"]) === "") && ($_POST["female"] === "")) {
$quantityErr = "pls fill in one of the genders";
elseif(empty($_POST["male"]))
$maleErr = "# of people (gender male) required";
else
$male = test_input($_POST["male"]);
}
答案 1 :(得分:0)
此
$_POST(["female"])
无法访问female
array的POST
值。
可以使用Curlys {}
或方括号[]
来访问数组。
方括号和花括号可以互换使用来访问数组元素(例如$ array [42]和$ array {42}在上面的例子中都会做同样的事情。)
这应该是正确的:
if (empty($_POST["male"]) && empty($_POST["female"])) {
$quantityErr = "pls fill in one of the genders";
} elseif (!empty($_POST["male"]) && $_POST["male"] > 0) {
$male = test_input($_POST["male"]);
} elseif (empty($_POST["male"])) {
//male is not set or equal to 0; if male is 0 then female >= 1 and set. logic doesn't have any female checks so unclear currently how you want to handle that
$maleErr = "# of people (gender male) required"; // maybe add message that it is required to be greater than 1.
}
您的条件也不正确。在控制结构上使用{}
时,需要关闭控制块。您的elseif
未关闭之前的if
。