Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从ajax获取控制器的数据属性?_Php_Jquery_Ajax_Symfony - Fatal编程技术网

Php 如何从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

从jQuery/ajax请求将
$\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();