我正在尝试创建一个表单,如果用户没有在特定输入中输入信息,那么在提交表单时,用户会被警告只填写该输入字段(例如“请输入用户名”)
目前我有一个 foreach循环,循环遍历表单的每个输入字段,并指定一个与字段同名的变量(即$ name = $ _POST ['name'])。
我会在代码中实现什么,以便我可以检查每个单独的输入字段是否为空并告诉用户这一点,但是将代码保持在最低限度?
<xp:this.beforePageLoad><![CDATA[#{javascript:
var myTest = [];
for (var i=0; i<9; i++) {
myTest[i] = i;
}
viewScope.myTest = myTest;
}]]></xp:this.beforePageLoad>
<xp:repeat
id="repeat1"
rows="30"
var="row"
value="#{viewScope.myTest}">
<xp:text
escape="true"
id="computedField1"
value="#{javascript:row.toString()}">
</xp:text>
<br />
</xp:repeat>
答案 0 :(得分:0)
虽然我不同意您的做法,但解决方案是在您的第一个array
循环中添加错误foreach
。
foreach ($_POST as $key => $value) {
${$key} = $_POST[$key];
// If the field is empty, set an error
if( empty($value) ) {
$errors[] = 'Please enter a ' . $key . '.';
}
}
然后更改底部以检查错误array
。如果它为空,请运行您的代码以完成表单提交。如果没有,请循环错误。
if( empty($errors) ) {
//code if all fields are not empty
}
else {
// Loop through each error found
foreach($errors as $error) {
echo $error;
}
}