这里我需要一个帮助如何在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>"
答案 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);