javascript - Returning form view in Symfony2 using Ajax/Jquery -


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