我正在试图弄清楚如何做到这一点。我可以很容易地在Perl中完成它,但不能让它在Php中工作:
我在网络表单上有大约6个字段,这些字段在填写时都是必填字段。
我想将它们放入数组中,如下所示:name => “错误信息在这里”:
$_ReqFields = array( 'name' => "Name is Required", 'field2' => "Field 2 is Required", 'field3' => "Field 3 is Required"); // ect...
但是如果提交的字段是空的,我无法弄清楚foreach是否显示该消息,这是我到目前为止所拥有的:
$_err = 0;
foreach ($reqFields as $__field) {
if(empty($_REQUEST[$__field])) {
$_err++;
$_errMsg .= "{$reqFields{$__field}}" . "<br>";// ?? not sure how to do this to keep appending the error message for each field to the error message I'll show...
}
}
那么我只需要检查$ _err是否仍为0,如果是这样,没有错误,可以处理请求......但我无法弄清楚我在那里做错了什么。
你能帮我吗?
谢谢。 富
答案 0 :(得分:0)
首先是你的变量名&#34; $ _ ReqFields&#34;与你使用的不一样&#34; $ reqFields&#34;也许你需要将$ _ReqField重命名为$ reqFields
试试这个:
$reqFields = array( 'name' => 'Name is Required',
'field2' => 'Field 2 is Required',
'field3' => 'Field 3 is Required');
$_err = 0;
$_errMsg = '';
foreach ($reqFields as $field_name=>$error_msg) {
if(isset($_REQUEST[$field_name]) && !$_REQUEST[$field_name]) {
$_err++;
$_errMsg .= $error_msg.'<br />';
}
}
答案 1 :(得分:0)
这是否有效:
$_err = 0;
$_errMsg = '';
foreach ($reqFields as $key=>$value) {
if(empty($_POST[$key])) {
$_err++;
$_errMsg .= $value . '<br />';
}
}
修复foreach以查找键和值,我猜数据是POST数据,所以我将$ _REQUEST更改为$ _POST。还修复了$ _errMsg