如果其中1个输入为空,我想用多个具有相同名称的输入来验证表单。如果我使用if (empty($_POST))
表单将被处理,但是不应该处理。有人可以帮我吗?
if (isset($_POST['action']) && ($_POST['action'] == 'process')) {
$size = count($_POST['lc_setting']);
$i = 0;
while ($i < $size) {
$config_value = $_POST['lc_setting'][$i];
$id = $_POST['id'][$i];
$sql = "UPDATE lc_config SET configuration_value = '$config_value' WHERE config_id = $id";
mysqli_query($mysqli, $sql) or die("Error in query: $sql");
++$i;
}
}
<form id="lc_settings" method="post" action="{$basename}">
<input type="hidden" name="action" value="process">
<ul>
{foreach name=aussen from=$module_content item=module_data}
<li class="shadow form-group" style="position: relative">
<strong>{$module_data.CONFIG_LABEL}</strong>
<div>
<input class="form-control" type="text" name="lc_setting[]" value="{$module_data.CONFIG_VALUE}" placeholder="Field may not be empty" autocomplete="off" data-validation="required" />
<input name="id[]" type="hidden" value="{$module_data.CONFIG_ID}">
{$module_data.CONFIG_COMMENT}
</div>
</li>
{/foreach}
</ul>
<div class="buttons">
<input type="submit" name="Submit" id="lc-submit" class="sbutton" value="Save Changes">
</div>
</form>
答案 0 :(得分:0)
您可以使用类似的东西
if (isset($_POST['action']) && ($_POST['action'] == 'process')) {
$size = count($_POST['lc_setting']);
$i = 0;
while ($i < $size) {
$config_value = trim($_POST['lc_setting'][$i]);
$id = $_POST['id'][$i];
if(strlen($config_value)<=3) { // replace 3 with minimun length of lc_setting required
continue;
}
$sql = "UPDATE lc_config SET configuration_value = '$config_value' WHERE config_id = $id";
mysqli_query($mysqli, $sql) or die("Error in query: $sql");
++$i;
}
}