在我的laravel项目中,有一个刀片文件,用于添加包含所有者详细信息的商店。我需要添加一个按钮"添加另一个商店"因此,在点击它时,需要出现相同的html表集。我是laravel框架中的新手。所以如果我的代码中出现任何错误,请纠正我。
我的add.blade.php
$data = /* get shop details from db */
Name: <input type="text" name="name" id="name" value="$data['shop_name']"/>
Location: <select name='shop_location' class='shop_location'>
<option value="0">Select</option>
<?php
$idl=Location::get();
$location_id_drop_down='';
if($data['shop_city_id'])
$loc=$data['shop_city_id'];
else
$loc=Input::old('shop_location');
foreach($idl as $lrow)
{
if($loc==$lrow->location_id)
{
$location_id_drop_down.="<option value='" . $lrow->location_id . "' selected='selected'>" . $lrow->location_name . "</option>";
}
else
{
$location_id_drop_down.="<option value='" . $lrow->location_id . "'>" . $lrow->location_name . "</option>";
}
}
echo $location_id_drop_down;
?>
</select>
State: <input type="text" name="state" id="state" value="$data['shop_state']"/>
<?php echo Form::button("Add another shop",array('id'=>'extra','onclick'=>'extraaa()')); ?>
<div id="extra_div" style="display: none;"</div>
脚本功能
function extraaa() {
var e=1;
$.ajax({
type: "POST",
url: "<?php echo URL::to('admin');?>/extrashop",
data: {}
})
.done(function(data) {
$("#extra_div").html(data);
$("#extra_div").css("display","block");
});
e++;
}
AdminController
额外的店铺功能
public function anyExtraShop($id){
return View::make('shop.admin_extra_shop');
}
在admin_extra_shop.blade.php中,我写了包含商店名称,位置,州等的html表,但这只增加了一个额外的商店。我需要根据管理员的需求添加更多商店。
有谁知道如何解决这个问题?
修改
有些版本是基于我现在获得的java脚本代码和控制器功能。
答案 0 :(得分:0)
Laravel要求您从控制器方法返回一些内容。而不是echo $ id;出口();使用Laravel json回复。
return Response::json(array('id' => $id);
你也可以打电话给$ this-&gt; layout = null;在调用此函数之前,如果您的控制器正在扩展BaseController
将html模板作为ajax响应使用
return Response::json(array('id' => $id, 'data' => View::make('shop.admin_extra_shop'));
但不是通过ajax重新加载整个视图我会做的是从控制器返回一个项目(商店)并用jquery左右将其附加到列表中。