gpt4 book ai didi

php - Symfony:将参数传递给 Ajax url

转载 作者:行者123 更新时间:2023-12-05 05:23:13 24 4
gpt4 key购买 nike

我想弄清楚如何在不重新加载页面的情况下启用/禁用带有复选框的用户。

index.html.twig

<table>
<thead>
<tr>
<th>UserName</th>
<th>Enabled</th>
</tr>
</thead>
<tbody>
{% for user in users %}
<td><a href="{{ path('user_show', {'id': user.id}) }}">
{{ user.username }}</a>
</td>
<td><input id="user_enable_{{ user.id }}" onclick="enabledChange({{ user.id }})"
type="checkbox" {% if user.enabled %}checked{% endif %}/>
</td>
{% endfor %}
</tbody>
</table>

<script>
var changePath = {{ path('user_enable_change', {'id': user.id}) }};

function enabledChange(id)
{
var value = $(this).val();
console.log('value: ' + value);
$.ajax({
type: "POST",
url: changePath,
async: true,
data: { },
success: function () {
console.log('success');
}
});
}
</script>

用户 Controller

 /**
* @Route("/enable/{id}", name="user_enable_change")
*/
public function userDisableAction(User $user) {

if($user->isEnabled()){
$user->setEnabled(false);
}else {
$user->setEnabled(true);
}

try {
$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->flush();
}
catch(\Exception $e) {
return new JsonResponse('error');
}

return new JsonResponse('success');

}

问题

如何将相应的用户id设置为enabledChange函数并根据用户状态更改选中状态?

最佳答案

您需要为变量添加引号,并将 changePath 作为参数传递:

onclick="enabledChange('{{ user.id }}', '{{ path('user_enable_change', {'id': user.id}) }}')"

然后:

function enabledChange(id, changePath) {
var value = $(this).val();
console.log('value: ' + value);
$.ajax({
type: "POST",
url: changePath,
async: true,
data: { },
success: function () {
console.log('success');
}
});
}

希望对您有所帮助。

关于php - Symfony:将参数传递给 Ajax url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38673703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com