如何在变量中使用foreach?我被卡住了

How to use foreach in variable? I am stuck

本文关键字:foreach 变量      更新时间:2023-09-26

我正在尝试回显一个包含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;}?>

那个么问题出在哪里呢?如何解决?有人能帮我吗?

您只得到最后一个错误,因为您没有将错误附加在一起

$error = "";
foreach($errors as $err){
    $error .= '<li>'.$err.'</li>';
}

或者更好的建议是

$error = "<li>" . implode("</li><li>", $errors) . "</li>";