2016-03-02 92 views
3

我有一个简单的座位图,它具有指定的IP地址。它是通过javascript生成的。我有一个偶尔会被IP地址和计算机名称填充的数据库。我使用Laravel查询数据库。比较来自laravel的数据库值到一个javascript值

routes.php文件

Route::get('seatplan', '[email protected]'); 

控制器

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

回答

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; 

因为这些代码necessits的takenSeats变量被初始化确保把json_encode在此之前。

这里是a fork of your codepen illustrating this

+0

你是对的先生!一旦我在PHP中获取变量,我是否只将var takenSeats = []留空? –

+1

如果你正在谈论codepen中的代码,你应该删除。由于codepen只是HTML/CSS/JS(没有PHP),我不得不用这个意思初始化变量。但是,一旦你用PHP生成变量,请删除它。 'takenSeats = []'你清空你的数组,并且你不想要那个:) – chadrien

+0

啊我看到了..所以这些值只存储在_var中。 –