将 laravel 中的数据库值与 javascript 值进行比较
Posted
技术标签:
【中文标题】将 laravel 中的数据库值与 javascript 值进行比较【英文标题】:Compare database value from laravel to a javascript value 【发布时间】:2016-06-15 11:02:46 【问题描述】:我有一个简单的座位表,上面有一个指定的 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】:你的问题不是很清楚,但我理解你想要做的是确定哪些座位被占用,对吗?
如果是这样,只需从您的 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
放在之前。
这里是a fork of your codepen illustrating this
【讨论】:
您说得对,先生!在 PHP 中获取变量后,是否将 var takeSeats = [] 留空? 如果你说的是codepen中的代码,你应该删除。由于 codepen 仅是 HTML/CSS/JS(没有 PHP),因此我不得不通过这种方式初始化变量。但是一旦你用 PHP 生成了变量,就删除它。takenSeats = []
你清空你的数组,你不会想要那个:)
啊我明白了.. 所以这些值只是存储在 var takeSeats = ?
是的,这就是为什么首先有这个很重要,否则在你的JS代码中,它将是undefined
酷!我会找到关于 laravel 部分的方法。谢谢先生:D以上是关于将 laravel 中的数据库值与 javascript 值进行比较的主要内容,如果未能解决你的问题,请参考以下文章