如何在按钮点击上重新填充html集

时间:2014-12-08 11:26:24

标签: javascript php jquery ajax laravel

在我的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脚本代码和控制器功能。

1 个答案:

答案 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左右将其附加到列表中。