php - symfony2 ajax call always return null data -


i using symfony 2.7 , query information database , show on page want current values via api connection through ajax call clicking button null response ajax controller.

<div>     <p id="product">1k0615301m1</p>     <p id="product">1k0615301m2</p>        <input type="button" id="submit" value="check"/> </div>  <script>      $(document).ready(function(){          $('#submit').click(function(event) {              var productnr = [];              $('#product').each(function() {                  productnr.push($(this).html());              });              console.log(productnr); // value of productnr              var ajaxrequest;              event.preventdefault();               ajaxrequest = $.ajax({                  url: " {{ path('frontend_api_product') }}",                  type: "post",                  processdata: false,                  contenttype: 'application/json; charset=utf-8',                  data: productnr,                  success: function (data) {                      console.log(data);                  }              });          });      });  </script> 

my controller:

public function ajaxaction(request $request) {     $sparepart = $request->request->get('data');      if ($request->isxmlhttprequest()) {         return new jsonresponse(array(             'sucess'=> true,             'data' => $sparepart         ));     }     return new response('this not ajax!', 400); } 

console.log

 object { sucess: true, data: null } 

because data object has no data key, cannot retrieve doing $request->request->get('data');

to whole object, use $data = $request->request->all();

there many errors in code.
pushing values in productnr instead of productnr.
have many elements same id (an id uniq, have use classes).

edit

the problem coming format of data sending. send object {"data":["1k0615301m1","1k0615301m2"]} , use:

var productnr = { data: [] }; var ajaxrequest;  $('.product').each(function() {     var product = $(this).text();     productnr.data.push(product); }); ajaxrequest = $.ajax({     url: "/ajax",     type: "post",     data: json.stringify(productnr),     processdata: false,     success: function (data) {         console.log(data);     } }); 

use json.stringify serialise data before send it.
see how post array of objects $.ajax (jquery or zepto)


Comments

Popular posts from this blog

javascript - jQuery: Add class depending on URL in the best way -

caching - How to check if a url path exists in the service worker cache -

Redirect to a HTTPS version using .htaccess -