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

时间:2014-04-14 03:31:47

标签: javascript php jquery html

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

那么问题是什么?怎么解决?任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

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

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

或更好的建议是

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