我想打一個butoon添加新項行:使用Foreach循環中的Javascript Laravel 5.3
這是create.blade.php的HTML
<div class="createOrderForm" id="orderMenuItems">
<div class="orderItem">
<label> Item : </label>
<select name="item[]" required>
<option value="">Menu Items</option>
@foreach ($menuItems as $item)
<option value="{{$item->id}}">{{$item->name}}</option>
@endforeach
</select>
<label>Quantity :</label>
<input type="text" name="quantity[]" value="" required>
</div>
</div>
和這是包括的create.js:
$(document).ready(function() {
console.log("Welcome To create order Page");
var addItem = $('#addItem');
var orderMenuItems = $('#orderMenuItems');
$(addItem).click(function(e){
var newItem = '<div class="orderItem">';
newItem += '<label> Item : </label>';
newItem += '<select name="orderItem[]">';
newItem += '<option value="">Menu Items</option>';
newItem += "@foreach ($menuItems as $item)";
var itemID = "{!! $item->id !!}";
newItem += '<option value="'+ itemID +'">'+ itemID +'</option>';
newItem += "@endforeach";
newItem += '</select>';
newItem += '<label>Quantity :</label>';
newItem += '<input type="text" name="quantity[]" value="" required>';
newItem += '</div>';
$(orderMenuItems).append(newItem);
});
});
該按鈕的工作原理和增加新的行,但再與新的行中的菜單項的問題:
我認爲這個問題是在這裏:
newItem += "@foreach ($menuItems as $item)";
var itemID = "{!! $item->id !!}";
newItem += '<option value="'+ itemID +'">'+ itemID +'</option>';
newItem += "@endforeach";
我試着使用:
@foreach ($menuItems as $item)
....
@endforeach
而不是:
newItem += "@foreach ($menuItems as $item)";
....
newItem += "@endforeach";
但它不起作用。
我該如何解決?
我想這是因爲你混合PHP和JavaScript這樣{! $ item-> id !!}沒有被php回顯,但被設置爲一個字符串。 –
那麼,我該怎麼做才能使它工作? @ Mr.Greenwoodz –
有點像var itemID ='<?php echo $ item-> id?>;'; –