过去2天,我一直在苦苦挣扎,到目前为止,我在互联网上找不到的答案都没有对我有所帮助。
我正在尝试在symfony项目上使用ajax传递数据。目的是更新树枝值。
所以我设置了一个像这样的ajax调用:
$searchbar = $("#searchBar");
var btnSearch = document.getElementById("btnRecherche");
btnSearch.onclick = chargeClientsData;
function chargeClientsData()
{
let searchVal = $("#searchBar").val();
console.log(searchVal);
$.ajax({
url: "{{ path('showIt') }}", // point to server-side PHP script
dataType: 'json',
data: {data : searchVal },
type: 'POST',
success: function(data){
console.log(data);
$('#monelement').html("test");
}
});
}
如果要使用此控制器,我很想知道:
/**
* @route("/showIt}", name="showIt", methods="POST")
* @param $request
* @return Response
*/
public function showIt(Request $request){
var_dump($request);
if($request->isXmlHttpRequest()){
$search = $request->query->get('data');
var_dump($search);
$response = $this->checkValidRequest($request);
return $response->setData(['search' => $search ]); // working
}
$response = $this->checkValidRequest($request);
$response->setStatusCode(500);
return $response;
}
var_dump($ request)没有显示任何值,当然var_dump($ search)为NULL。
在树枝上,$(“#searchBar”);发送righ值,但我确实成功了,但是空值为
我做错了什么吗?
感谢您的帮助!
答案 0 :(得分:1)
由于使用的是POST请求,因此可以在控制器中获取POST参数,如下所示:
$search = $request->request->get('data');
代替
$search = $request->query->get('data');
当前正在使用的。请注意,$request->query->get('data')
用于GET方法。