将 Laravel 数据库的值与 JavaScript 值进行比较

3
我有一个简单的座位图,它有一个指定的IP地址,是通过JavaScript生成的。我有一个数据库,偶尔会被IP地址和计算机名称填充。我使用Laravel查询数据库。
Routes.php。
Route::get('seatplan', 'SeatplanController@seatplan');

控制器
public function seatplan()
{

$ipadd = Client::all();
return View::make('seatplan',['ipadd' => $ipadd]);

}

刀片
@foreach($ipadd as $ipadds)
    {{$ipadds->ipadd}}
    <br />
@endforeach

如何比较它们,以便如果数据库中插入新数据,我可以比较IP地址并显示计算机名称。 这是我的JS代码:
var cols = document.getElementsByClassName("col");
var seatNum = 1;
var n = "192.168.240.";

for (var i = cols.length - 1; i >= 0; i--) {
  if (i % 2 == 0) {
  for (var j = 0; j < cols[i].children.length; j++) {
    cols[i].children[j].innerHTML = n.concat(seatNum);
    seatNum++;
  }
} else {
  for (var j = cols[i].children.length - 1; j >= 0; j--) {
    cols[i].children[j].innerHTML = n.concat(seatNum);
    seatNum++;
   }
  }

}

http://codepen.io/anon/pen/eZNzoV

http://i.imgur.com/WNaVkX0.png?1

1个回答

2
您的问题不是很清楚,但我理解您想要做的是确定哪些座位已被占用,是吗?
如果是这样,只需从PHP数据生成JS变量。不要使用foreach,而是使用以下代码:<script>var takenSeats = <?php json_encode($ipadd) ?></script>。我不知道Laraval,所以我使用纯PHP,但重点是使用json_encode,以便将您的PHP数组呈现为JS数组,并分配给全局JS变量。
然后更新您的JS代码,例如:
var text = n.concat(seatNum);
if (takenSeats.indexOf(ip) !== -1) {
  ip += ' taken';
}
cols[i].children[j].innerHTML = text;

由于此代码需要初始化 takenSeats 变量,请确保在此之前放置 json_encode

这里是 您的 CodePen 的一个分叉,说明了这一点


先生,您说得对!我在 PHP 中获取变量后,是否只需将 var takenSeats = [] 保持为空? - lukemems_2
1
如果你在谈论CodePen中的代码,那么你应该删除它。因为CodePen只支持HTML/CSS/JS(没有PHP),所以我必须通过这种方式初始化变量。但是一旦你用PHP生成了变量,就可以删除它了。takenSeats = [] 你会清空你的数组,而你不想这样做 :) - chadrien
啊,我明白了。所以这些值只是存储在 var takenSeats = <?php json_encode($ipadd) ?> 中吗? - lukemems_2
是的,这就是为什么有这个很重要的原因,否则在你的JS代码中,它会是 undefined - chadrien
我可以问一下,indexOf(ip)有什么用吗? - lukemems_2
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接