当前从下拉菜单发布数据。我试图基本上是返回的形式,然后插入到页面。
<标题>选择下拉h1> Jquery Ajax/h1> 制器h1> 回此数据,表示表单有效。return array(
'form' => $form->createView(),
);
获得500内部服务器错误。我只想把这个表单呈现在当前页面上,不刷新
标题>我邀请你使用FOSJsRoutingBundle,
看看我的jQuery Ajax调用的例子:
$('#addNewVariant').on('click', function(event){
var hidden_input = $('#hidden_input').val();
hidden_input++;
$.ajax({
type: "get",
dataType: 'json',
url: Routing.generate('admin_products_addNewVariant', {'number' : hidden_input }),
beforeSend: function(){
$('.loadingGif').show();
$('#loadingModal').modal('show');
},
success: function( returnedData ) {
$('#hidden_input').attr( 'value', hidden_input );
$('#ajaxVariantAdded').append('<li class="dd-item" data-id="'+returnedData.id+'"><div class="dd-handle"><a data-id="'+returnedData.id+'"><i class="fa fa-hand-o-right"></i> {{"tab.variant"|trans}} '+returnedData.name+'</a><a data-id="'+returnedData.id+'" data-toggle="modal" class="pull-right" href="#modal'+returnedData.id+'"><i class="glyphicon glyphicon-minus-sign"></i></a></div></li>');
$( '.ajax' ).append( returnedData.form );
$('.variant').hide();
$('.variantItem'+returnedData.id).show();
$('.loadingGif').hide();
$('#loadingModal').modal('hide');
},
error: function( returnedData){
$('.loadingGif').hide();
$('#loadingModal').modal('hide');
}
});
});
这是我的路线:
admin_products_addNewVariant:
pattern: /addVariation/{number}
defaults: { _controller: "ProductsBundle:BackEnd/Products:addNewVariant" }
options:
expose: true
最后这是我的功能:
public function addNewVariantAction($number){
$entity = new Variant();
$form = $this->createForm(new VariantType($number), $entity)->createView();
$response = new JsonResponse(array(
'form' => $this->renderView('ProductsBundle:Administration:Products/NewFormVariant/new.html.twig',array(
'form' => $form,
'number' => $number,
)
),
'name' => $number+1,
'id' => $number,
));
return $response;
}
希望我的回答对大家有所帮助。