我有一個簡單的showAction向用戶展示的信息:獲得從Symfony的控制器操作數據與AJAX
/**
* @Route("/user/{id}", name="show_user", options={"expose"=true})
* @Method("GET")
*
* @param User $user
* @return \Symfony\Component\HttpFoundation\Response
*/
public function showAction(User $user)
{
return $this->render('user/showUser.html.twig', array(
'user' => $user,
));
}
我試圖讓與AJAX的信息在一個單獨的div來顯示它:
$('.showUser').click(function (e) {
var getUrl = Routing.generate('show_user', {'id': $(this).attr('id')});
e.preventDefault();
$.ajax({
url: getUrl,
success: function (data) {
$("#userdetails").html(data);
}
});
});
我在HTML用戶概述清單:
<table class="table-title table table-striped table-bordered">
<thead>
<tr>
<th class="col-md-2">Name</th>
<th class="col-md-1">Age</th>
<th class="col-md-1">Actions</th>
</tr>
</thead>
<tbody>
<tr>
{% for user in users %}
<td>{{ user.name }}</td>
<td>{{ user.age }}</td>
<td>
<button id="{{ user.id }}" type="button" class="deleteUser btn btn-lg btn-danger">Delete</button>
<button id="{{ user.id }}" type="button" class="showUser btn btn-lg btn-primary">Show</button>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="displayUser col-sm-4">
{% include 'user/showUser.html.twig' %}
</div>
而且我showUser模板顯示選擇的U SER:
<div id="userdetails">
{{ dump(user) }}
</div>
什麼目前正在發生的事情是,當我加載頁面時,{{ dump(user) }}
包含所有用戶的數組,而不是空的。當我然後點擊顯示按鈕,顯示一個用戶的信息{{ dump(user)}}
不會改變,以顯示正確的信息。
而且當我改變{{ dump(user) }}
是{{ user.name }} - {{ user.age }}
,並重新加載頁面出現錯誤:
Key "name" for array with keys "0, 1" does not exist in user/showUser.html.twig at line 2
有人可以幫助我嗎?向我解釋我做錯了什麼?我覺得還有什麼問題我的AJAX調用,我從來沒有使用過阿賈克斯,我創造了這個基礎上我設法找到,但比這再我沒有得到樣品。
我要的是用戶的顯示按鈕點擊時一個div來顯示用戶的信息。
可能是你並不需要包含'{%包括「用戶/ showUser.html.twig」%}'因爲你加載通過AJAX的細節 –