今日は荒い夜と午前のハハハです。私はdata
とsymfony2
をAJAX
'POST'
請願から得ることを試みています。[OLVED。 POST ajax請願書からのデータの取得中にエラーが発生するSymfony2
実際には配列を送信してコントローラで取得しますが、この変数のようなエラーが表示されますnull
です。私は正しい方法でそれを得ることを試みていると思うが... 見よう!
これはJS AJAX申請です。私はul#sortable.children()命令をデータベースで更新するようになっているので、位置とIDの配列を送りました。
例:["1"、 "3"、 "2"]。したがって、db内のid = 1のオブジェクトは、1の位置に配置されます。id = 3の要素は2の位置にあり、id = 2の要素は3の位置に配置されます。
$('#ordenar').click(function(){
var $children = $('#sortable').children();
var numElementos = $children.length;
var socialSorted = [];
for(var i=0; i<numElementos; i++){
socialSorted.push($children[i].id);
}
$.ajax({
url: ' {{ path('admin_update_social_position') }} ',
datos: socialSorted,
method: 'POST'
}).done(function (data) {
if(data.type == 'OK'){
window.location.reload();
}
if(data.type == 'ERROR'){
$('#error-message').slideDown();
}
});
});
そして、ここで私は多くの方法を試してみましコントローラ
/**
* @Route("/admin/update/order/social", name="admin_update_social_position")
*/
public function orderSocial(Request $request)
{
$em = $this->getDoctrine()->getManager();
$socialSorted = $request->request->get('socialSorted');
$numElementos = count($socialSorted);
for($i=0; $i<$numElementos; $i++)
{
$social = $em->getRepository('AppBundle:Social')->findById($socialSorted[$i]);
$social->setPosition($i+1);
$em->persist($social);
}
if (empty($socialSorted)) {
$this->sendResponseStatus('ERROR');
return new JSONResponse($this->getData());
}
$em->flush();
$this->sendResponseStatus('OK');
// Generamos los datos para la respuesta ajax
return new JSONResponse($this->getData());
}
で...、配列を送信することで、配列でJSON
を送信してからもデータを取得するためのさまざまな方法controller
...アドバイス/解決策?あなたのすべてに
おかげで、あなたは
EDIT:エラーがラインにあった
$social = $em->getRepository('AppBundle:Social')->findById($socialSorted[$i]);
$social->setPosition($i+1);
$em->persist($social);
それはあなたとのArrayCollectionを返し、その後、私がすべきfindBy後Becausee:
$social = $em->getRepository('AppBundle:Social')->findById($socialSorted[$i]);
$social[0]->setPosition($i+1);
$em->persist($social[0]);
'datos:socialSorted、' ... datos? ...それは「データ:socialSorted」ではないでしょうか?あなたが 'null'を取ったという事実は、paramが正しく送られていないことを示します。 symfonysの 'request-> get()'は、paramが存在しなければ 'null'を返します。 –
申し訳ありませんが間違っていれば私を修正してください。 ajaxでは、あなたは 'data'の代わりに' datos'を書いていますし、keynameでデータを送ることもできます。このように 'data:{'socialSorted':socialSorted}、 ' –
同意してください!はい!どのような巨大な間違い.. hahahすべてにあなたに感謝!私は今、内部のエラーを受けていますが、私はコントローラを見てみましょう! @KinshukLahiri –