对于循环生成URL没有用

时间:2017-06-17 08:48:28

标签: javascript php html arrays laravel

我想将{{ url('character/c1') }}写为localhost:8000/character/c1,但它在JavaScript函数内部无效。

它会产生确切的localhost:8000/{{ url('character/c1') }}链接。

这是我的代码:

<script type="text/javascript">

    var characters = [
      "geer",
      "daar",
      "geet",
      "geen"
    ]

    var character = "";
    var i;

    for (i = 0; i < characters.length; i++) {
      character += "<a href=\"\{\{ url('character/c" + i + "') \}\}\"><li></li>" + "</a>";
    }

    document.getElementById('characters').innerHTML = character;
</script>

<ul id="characters"></ul>

3 个答案:

答案 0 :(得分:1)

在for循环之前添加此行

var url = window.location; // To get current window url
var url = "<?php echo $_SERVER['SERVER_NAME'] ?>" + ":<?php echo $_SERVER['SERVER_PORT'] ?>"; // To get your server name with Port

然后在for循环中修改这样的行。

character += "<a href=\"\{\{" +  url + "('character/c" + i + "') \}\}\"><li><img src=\"character/list/c" + i +  "/icon.png\"></li>" + "</a>";

window.location将为您提供当前网址。当然,如果你只想要你的服务器名称。你可以选择php选项。

干杯。快乐的编码。

答案 1 :(得分:1)

将你的for循环写成这个,

var url = {{ url('character') }};
for (i = 0; i < characters.length; i++) {
  character += '<a href="' + url + '/c' + i + '"><li></li></a>';
}

答案 2 :(得分:0)

谢谢大家,我已经弄清楚了。 这是因为c1位于路线get(/character/{id})

for (i = 0; i < characters.length; i++) {
  character += '<a href="c' + i + '"><li></li></a>';
}