我正在尝试回显包含javascript源代码的变量。我的代码是
if(!empty($errors)){
$errors = array(1, 2);
$error = '';
foreach($errors as $err){
$error .= '<li>'.$err.'</li>';
}
$alert = '
<script>
bootbox.dialog({
message: "<div align=\"left\"><b>Errors:</b><br>
<ul>'.$error.'</ul></div>",
title: "We got some error.",
buttons: {
danger: {
label: "Okay!",
className: "btn-danger",
},
}
});
</script>
';
}
在我的身体里,我正在回应$ alert变量,我得到的结果是
<script>
bootbox.dialog({
message: "<div align=\"left\"><b>Errors:</b><br>
<ul><li>2</li></ul></div>",
title: "We got some error.",
buttons: {
danger: {
label: "Okay!",
className: "btn-danger",
},
}
});
</script>
但我没有得到弹出窗口。如果我删除$ error并回显此
$alert = '
<script>
bootbox.dialog({
message: "<div align=\"left\"><b>Errors:</b><br>
<ul><li>hello 1</li><li>hello 2</li></ul></div>",
title: "We got some error.",
buttons: {
danger: {
label: "Okay!",
className: "btn-danger",
},
}
});
</script> ';
所以我得到弹出错误。我用它来回应$ alert
<body>
<?php if(isset($alert)){echo $alert;}?>
那么问题是什么?怎么解决?任何人都可以帮助我吗?
答案 0 :(得分:2)
您只收到最后一个错误,因为您没有将错误附加在一起
$error = "";
foreach($errors as $err){
$error .= '<li>'.$err.'</li>';
}
或更好的建议是
$error = "<li>" . implode("</li><li>", $errors) . "</li>";