如果我正在使用laravel,如何在ajax中编写@if

时间:2017-10-18 16:34:17

标签: javascript php ajax laravel

这里我需要一个帮助如何在javascript中编写@if角色如果我正在使用Laravel和laravel中的代码,如你所见,但我想在ajax部分编写相同的代码

Laravel代码:

 <td class="text-center">@if ($post->adver_position==0) TOP @endif @if ($post->adver_position==1) RIGHT @endif @if ($post->adver_position==2) LEFT @endif @if ($post->adver_position==3) BOTTOM @endif</td>

的Ajax:

      $('.item' + data.id).replaceWith("<tr class='item" + data.id + "'><td  class='col1'>" + data.id + "</td><td><img src='images/" + data.adver_photo + "'style='width: 50%;margin-left: 35px;border-radius: 3px;border: 1px solid #1a2732;' /></td><td>" + data.adver_title + "</td>"

2 个答案:

答案 0 :(得分:2)

您需要使用javascript,而不是laravel模板语法。 Laravel是一个PHP框架,因此它在服务器端呈现。 Javascript是客户端,它是您向服务器发出异步请求的地方。

你应该做这样的事情(我不知道jQuery ajax语法)

$.ajax({
  done: function (post) {
    const pos = post.adver_position
    var textPos

    if (pos == 0)
      textPos = 'TOP'
    else if (pos == 1)
      textPos = 'RIGHT'
    else if (pos == 2)
      textPos = 'LEFT'
    else
      textPos = 'BOTTOM'

    /* Place your DOM handling code here */
  }
})

但是你的代码有点差。我建议你尝试一些js框架来构建UI,它有很多(例如React,Angular,Vue.js)。

答案 1 :(得分:0)

您无法从客户端使用刀片服务器,但问题的解决方案将是下一个问题。您可以构建进入 replaceWith()函数的字符串,并从java脚本进行比较,例如:

  var content = "<tr class='item" + data.id + "'> "
                +  "<td  class='col1'>" + data.id + "</td> "
                +  "<td><img src='images/" + data.adver_photo + "'style='width: 50%;margin-left: 35px;border-radius: 3px;border: 1px solid #1a2732;' /> </td>" 
                +  "<td>" + data.adver_title + "</td>"
                +  "<td> ";

  switch(data.adver_position) {
    case 0:
        content = content + "TOP";
        break;
    case 1:
        content = content + "RIGHT";
        break;
    case 2:
        content = content + "LEFT";
        break;
    case 3:
        content = content + "BOTTOM";
        break;
    }

    content = content + "</td> </tr>"


     $('.item' + data.id).replaceWith(content);