将laravel中的数据库值与javascript值进行比较

时间:2016-03-02 14:22:53

标签: javascript php mysql ajax laravel

我有一个简单的座位表,有一个指定的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 个答案:

答案 0 :(得分:2)

你的问题不是很清楚,但我理解你要做的是确定哪些座位是正确的?

如果是这样,juste会从PHP数据中生成一个JS变量。不要执行foreach,而是执行:<script>var takenSeats = <?php json_encode($ipadd) ?></script>。我不了解Laraval所以我使用普通的PHP,但重点是使用json_encode以便渲染PHP数组作为JS数组并分配给全局JS var。

然后更新你的JS(例如):

var text = n.concat(seatNum);
if (takenSeats.indexOf(ip) !== -1) {
  ip += ' taken';
}
cols[i].children[j].innerHTML = text;

由于此代码必须初始化takenSeats变量,因此请确保将json_encode 置于之前。

这是a fork of your codepen illustrating this