【发布时间】:2017-02-02 18:29:37
【问题描述】:
我有一个包含多个<FORM>s 的页面
例如:
@foreach($build['products'] as $productid)
<form id="productid_49" method="POST" action="/products/49/custom">
<input type="hidden" name="csrf_token" value="">
<input type="button" id="btn_49" value="Click">
</form>
<div id="form_output_49">
</div>
<form id="productid_23" method="POST" action="/products/23/custom">
<input type="hidden" name="csrf_token" value="">
<input type="button" id="btn_23" value="Click">
</form>
<div id="form_output_23">
</div>
<form id="productid_15" method="POST" action="/products/15/custom">
<input type="hidden" name="csrf_token" value="">
<input type="button" id="btn_15" value="Click">
</form>
<div id="form_output_15">
</div>
.
.
.
.
.
.
.
so on
@endforeach
当btn被点击时,Jquery被调用:
$('input#btn_'+productid).click( function(e) {
e.preventDefault();
var form = $('#productid_'+productid);
var post_url = form.attr('action');
var post_data = form.serialize();
var div=$('#form_output_'+productid).html();
//console.log(post_url);
$.ajax({
type: 'POST',
url: post_url,
cache : false,
data: post_data,
success: function(data) {
$.post(post_url, function(data){
$('#form_output_'+productid).html(data);
});
}
});
});
路线:
Route::post('products/(:any)/custom', array('as' => 'compare', 'uses' => 'compares@custom'));
控制器:
public function post_custom($productid)
{
$compare = new Compare($product_id);
$compare->customsingelproduct($product_id);
}
Lib 文件:
public function customsingelproduct($product_id)
{
$view = View::make('view.ajaxtest');
return $view;
}
它工作正常,但我似乎无法获得部分视图,所以我只能加载那个而不是重新加载整个页面。
有render()但是不起作用。
我怎样才能使用 AJAX 获得同一页面的部分视图,并且基本上可以做 $('#form_output_'+productid).html(data); 之类的事情
我希望我清楚地描述了这个问题,如果没有,请询问。
需要帮助
使用 Laravel 3。
【问题讨论】:
-
我无法使用 AJAX 将部分视图加载到页面中
-
是的,您以非常基本的方式解释了问题所在……但到目前为止,您还没有解释发生了什么。您有
return Response::json($view));,因此您将页面作为 JSON 返回。所以你的 AJAX 选项中需要dataType: "json"一个 -
当我 counsol.log 但不加载视图时返回:objects:blabla
-
啊,当然……所以不要将它作为 JSON 返回。像普通页面一样返回它。在这种情况下尝试
return View::make('view.ajaxtest');... -
@Jonathan 它给出:500(内部服务器错误)
标签: jquery ajax laravel laravel-3