我制作了一组错误消息,我想在必要时只显示
$_SESSION['error']=[
'error_clientName' => 'Le nom du client doit comporter au moins 2 caractères',
'error_color' => 'La couleur doit être au format hexadécimal',
'error_nav' => 'Merci de choisir une couleur de de barre de navigation',
'error_download' => 'Une erreur est survenue durant le téléchargement',
'error_logo' => 'Le fichier doit être une image png, jpg ou svg',
'error_mockup' => 'Le fichier doit être une image en jpg',
'error_empty_logo' => 'Merci de choisir un logo',
'error_empty' => 'Merci de remplir tous les champs',
];
$errors=$_SESSION[ 'error' ];
我不知道如何处理它来显示消息,首先我尝试了这个,但它忽略了所有消息,合乎逻辑。。。
if(!empty($_SESSION['error'])) {
echo implode('<br>', $_SESSION['error']);
unset($_SESSION['error']);
}
然后我尝试了一个循环来遍历我的数组,但它不起作用:
foreach ($errors as $error){
echo implode('<br>', $error);
unset ($error);
}
你有什么建议吗?thx:(
您必须知道哪些错误代码是"相关";以仅显示相关的。
然后循环浏览代码,并在显示消息之前检查该消息是否存在于会话中
$relevantErrorCodes = ['error_clientName', 'error_empty_logo'];
foreach($relevantErrorCodes as $errorCode) {
if (isset($_SESSION['error']) && isset($_SESSION['error'][$errorCode])) {
echo $_SESSION['error'][$errorCode] . '<br />';
}
}
如果你只想在列表中显示每一个,每行一个。
难道你不能用一个<ul> > <li>
包装它并通过CSS处理换行吗?
否则你应该可以做一个…
foreach ($errors as $error){
echo "{$error}<br>"
}
编辑:2020年9月12日
哦,对了,我现在明白了,我误解了你的问题!
你是如何确定你需要哪一个的?
根据您自己的示例,您似乎试图使用implode('<br>', $arr)
解决方案同时显示所有消息
为了确保我正确理解,这是一个静态列表,对吗?并且您只想在需要时检索每条消息?
或者错误数组是从例如表单验证错误中动态添加到列表中的?(或任何其他来源(,然后您只需要在需要时显示它们?
如果我正确理解你的问题,仍然不是100%,但这里有几个例子。
示例#1
/**
* Function error_message
*
* @param $message_id
*
* @return string
*/
function error_message($message_id) {
$errors = [
'error_clientName' => 'Le nom du client doit comporter au moins 2 caractères',
'error_color' => 'La couleur doit être au format hexadécimal',
'error_nav' => 'Merci de choisir une couleur de de barre de navigation',
'error_download' => 'Une erreur est survenue durant le téléchargement',
'error_logo' => 'Le fichier doit être une image png, jpg ou svg',
'error_mockup' => 'Le fichier doit être une image en jpg',
'error_empty_logo' => 'Merci de choisir un logo',
'error_empty' => 'Merci de remplir tous les champs',
];
return isset($errors[ $message_id ]) ? $errors[ $message_id ] : '' ;
}
/**
* Usage
*/
echo error_message('error_clientName');
示例2:或者,如果您想在特定位置显示一组错误,可以在错误数组中将它们划分为多个类别。
$errors = [
['error_category_1'] => [
'error_clientName' => 'Le nom du client doit comporter au moins 2 caractères',
'error_color' => 'La couleur doit être au format hexadécimal',
'error_nav' => 'Merci de choisir une couleur de de barre de navigation',
],
['error_category_2'] => [
'error_download' => 'Une erreur est survenue durant le téléchargement',
'error_logo' => 'Le fichier doit être une image png, jpg ou svg',
],
['error_category_3'] => [
'error_mockup' => 'Le fichier doit être une image en jpg',
'error_empty_logo' => 'Merci de choisir un logo',
'error_empty' => 'Merci de remplir tous les champs',
],
];