Php 如何从ajax获取控制器的数据属性?
从jQuery/ajax请求将Php 如何从ajax获取控制器的数据属性?,php,jquery,ajax,symfony,Php,Jquery,Ajax,Symfony,从jQuery/ajax请求将$\u POST变量传递到控制器时遇到问题 最终,我希望能够使用它来更新数据库中的字段 我的问题是试图访问控制器中的$\u POST['quantity']。我一直收到通知,数量未定义,我正在卸载它,它为空 我是jQuery/ajax新手,不知道如何解决这个问题。在我向控制器发出的ajax请求中,我确实需要帮助来获取数据属性quantity,并理解$\u POST['quantity']为空的原因 我希望我的问题很清楚,谢谢你的帮助 控制器功能: /** * Up
$\u POST
变量传递到控制器时遇到问题
最终,我希望能够使用它来更新数据库中的字段
我的问题是试图访问控制器中的$\u POST['quantity']
。我一直收到通知,数量未定义,我正在卸载它,它为空
我是jQuery/ajax新手,不知道如何解决这个问题。在我向控制器发出的ajax请求中,我确实需要帮助来获取数据属性quantity
,并理解$\u POST['quantity']
为空的原因
我希望我的问题很清楚,谢谢你的帮助
控制器功能:
/**
* Updates quantity using ajax/jQuery request from showCart twig file
*
* @Route("/{id}/quantityUpdate", name="product_quantityUpdate")
* @Method("POST")
* @Template()
*/
public function quantityUpdateAction(Request $request, $id) {
$em = $this->getDoctrine()->getManager();
$productId = $em->getRepository('ShopBundle:Product')->find($id);
$cart = $em->getRepository('ShopBundle:UserCart')->findOneBy(['user' => $this->getUser(), 'submitted' => false]);
$quantity = $em->getRepository(ShopBundle:Quantity')->findOneBy(['quantity' => $productId->getId()]);
var_dump($this->get('request')->request->get('quantity'));
$quantity = isset($_POST['quantity']) ? var_dump($_POST['quantity']) : false;
// $quantity->setQuantity(/* Code for finding correct product to update quantity */);
// $em->persist($quantity);
// $em->flush();
return new Response ("This has been successful!");
}
twig/ajax和jQuery:
<script type="text/javascript">
$(".spinner").spinner();
$('input.spinner').on('spinstop', function(){
min: 0
console.log('spinner changed');
var $this = $(this);
var value = $('spinner').val();
var request = $.ajax({
url: "{{ path('product_quantityUpdate', {'id': prodId }) }}",
method: "POST",
data : {
quantity: value
}
}).done(function(result){
console.log('success', result);
}).error(function(err){
console.log('error');
});
});
</script>
$(“.spinner”).spinner();
$('input.spinner')。在('spinstop',function()上{
最低:0
log(“微调器已更改”);
var$this=$(this);
var值=$('spinner').val();
var请求=$.ajax({
url:“{path('product_quantityUpdate',{'id':prodId}}}”,
方法:“张贴”,
数据:{
数量:价值
}
}).完成(功能(结果){
console.log('success',result);
}).error(函数(err){
console.log('error');
});
});
更改
var value = $('spinner').val();
到
您的选择器出现问题,因为我看到它丢失了
如果有多个元素具有相同的类,那么最好使用
this.value
这不是$request->get('quantity')吗。您的$请求已通过。在laravel中,您可以执行$request->quantity您是否检查了“value”变量的值?是否调用了done()回调?确保数据是通过浏览器开发工具(网络选项卡)request->get('quantity')
发送的,并且我拥有的是相同的东西(至少我非常确定)。我用你的建议得到了同样的结果anyway@IgorBukin它也是空的…我肯定我在这里做错了什么啊发现了它。您的js中没有类或id标识符。需要是$('.spinner').val()
var value = $('.spinner').val();