currently posting data drop-down menu. trying form returning , insert page.
select drop-down
<form method="post" style="display: inline;"> <select name="event_added" class="selectpicker"> {% subscription in form.peereventsubscriptions %} <option value='{{typedefevent[loop.index0]}}'>{{ form_label(subscription.eventtypehumanized) }}</option> {% endfor %} </select> <input type="submit" class="btn btn-default" id = "addeventbutton" data-rel="tooltip" title="addevent" value="add event" style="line-height: 1.5" /> </form>
ajax/jquery
var addevent = $("#addeventbutton"); addevent.click(function(){ $.ajax({ method: "post", url: "{{ path('_add_new_sub_event') }}", contenttype: 'application/json; charset=utf-8', data: { postvars: "event_class_jitter event_jitter" } }) .done(function( msg ) { console.log( "data saved: " + msg ); window.stop(); }); });
controller
return data, form valid.
return array( 'form' => $form->createview(), );
getting 500 internal server error. want take form , render current page, no refreshes.
i invite use fosjsroutingbundle,
look @ example of jquery ajax call:
$('#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'); } }); });
this route:
admin_products_addnewvariant: pattern: /addvariation/{number} defaults: { _controller: "productsbundle:backend/products:addnewvariant" } options: expose: true
finally function:
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; }
i hope answer give help.
Comments
Post a Comment