【问题标题】:how to repopulate set of html on button click如何在按钮单击时重新填充一组 html
【发布时间】:2014-12-08 11:26:23
【问题描述】:

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

【问题讨论】:

  • 你能解决你的问题吗?
  • 是的,我通过返回包含 html 的视图刀片解决了我的问题。

标签: javascript php jquery ajax laravel


【解决方案1】:

Laravel 要求你从控制器方法中返回一些东西。而不是 echo $id;出口();使用 Laravel json 响应。

return Response::json(array('id' => $id);

你也可能想调用 $this->layout = null;如果您的控制器正在扩展 BaseController,则在调用此之前

获取html模板作为ajax响应使用

return Response::json(array('id' => $id, 'data' => View::make('shop.admin_extra_shop'));

但我不会通过 ajax 重新加载整个视图,而是只从控制器返回一个项目(商店)并使用 jquery 左右将其附加到列表中。

【讨论】:

  • 嗨,我已经编辑了我的帖子。你能检查一下并帮助我吗??
  • 500 错误现在消失了吗?你应该得到一个 json 响应?
  • yes.. 500 错误消失了,现在我在“extradiv”部分获得了 html。但它的 html 元素 id 是相同的。我需要唯一地识别它们,而且目前只有一个额外的新商店添加到 div。我需要添加与管理员单击按钮一样多的新商店。希望你明白我的意思。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-28
  • 2012-01-21
  • 2020-03-20
  • 1970-01-01
  • 2020-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多