我刚接触PHP,我正在做一些非常简单的应用程序(测试). 我得到了一个包含以下代码的表单:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["val1"])) {
$err_val1 = "Error";
} else {
$val1 = test_input($_POST["val1"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
<div class='col-lg-1 center'>
<label>1</label>
<input type='text' class='form-control' name='val1'>
<span class='error'><?php echo (!empty($err_val1)) ? 'Error' : '';?></span>
</div>
有没有办法使用for(或Foreach)循环?因为有139个"天",我想优化代码,避免重复139次相同的部分.
=Edit=
我设法解决了这个问题.
$errors = [];
$fields = ['val1', 'val2', 'val3', ...];
$values = [];
$values['val1'] = $values['val2'] =$values['val3'] = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
foreach ($fields as $field) {
if (empty($_POST[$field])) {
$errors[] = $field;
} else {
$values[$field] = $_POST[$field];
}
}
if (empty($errors)) {
... execute SQL INSERT statement ...
}
表格
for ($i = 1; $i <= 3; $i++) {
echo "<div class='col-lg-1 center'>";
echo "<label>".$i."</label>";
echo "<input type='text' class='form-control' name='val".$i."' value='".$values['val' . $i]."'>";
if (in_array('val'.$i, $errors)):
echo "<span class='error'>Error</span>";
endif;
echo "</div>";
}