gpt4 book ai didi

javascript - Symfony2 Ajax 调用在特定条件下显示消息

转载 作者:行者123 更新时间:2023-11-28 00:04:51 24 4
gpt4 key购买 nike

我是 javascript 和 ajax 的初学者,我只是不知道如何在某些条件下显示消息。

假设用户可以增加或减少他想要购买的产品的数量。我已经做到了(并不是说这很容易)。但如果产品缺货,他就无法再增加数量。我怎样才能在消息中显示这一点。例如,如果用户尝试增加数量,但产品缺货,我想在同一个 ajax 调用上显示以下消息。

这是 Controller :

public function addQuantityAction( Request $request ) {
$response = new JsonResponse();
$requestData = $request->request->all();
$productid = $requestData['product'];
$quantity = $requestData['quantity'];
/** logic*/
$em = $this->getDoctrine()->getManager();
$product = $em->getRepository('MpShopBundle:Product')->find($productid);
$qtyAvailable = $product->getStockAvailable();
$session = $this->getRequest()->getSession();
$cart = $session->get('cart', array());
if ( $qtyAvailable > $cart[ $productid ] ) {
$cart[ $productid ] = $cart[ $productid ] + 1;
$qtyAvailable = $qtyAvailable - 1;
$response->setData(array('success'=>true,'message'=>'Qunatity increased','amount' => $cart[ $productid ]));
$session->set('cart', $cart);
} else {
$response->setData(array('success'=>false,'message'=>'Out of stock'));
}
return $response;
}

Ajax :

$(document).ready(function () {
$(document).on('click', '.add', function (e) {
$this = $(this);
$.ajax({
type: 'POST',
url: 'add',
dataType: 'JSON',
data: {product: $this.parent('.input-append').find('input').data('id'),quantity: $this.parent('.input-append').find('input').val()},
success: function (data) {
if(data.success == false){
alert('error')
}else{
$('.test').load(" .test");
$('.sidebar').load(" .sidebar");
$('.top').load(" .top");
}
}
});

还有 Twig :

<div class="input-append">

<input class="span1" style="max-width:34px" placeholder="{{ key }}" value="{{ item }}" id="appendedInputButtons" size="16" type="text" data-id="{{ key }}"/>
<a href="javascript:void(0)" class="remove btn"><i class="icon-minus"></i></a>
<a href="javascript:void(0)" class="add btn"><i class="icon-plus"></i></a>
<button class="btn btn-danger" type="button"><a href="{{ path('cart_remove', {'id': key}) }}"><i class="icon-remove icon-white" style="color:white"></i></a></button>

<p> display message here </p>

</div>

最佳答案

您还可以根据操作的成功或错误状态添加类。

Ajax

$(document).ready(function () {
$(document).on('click', '.add', function (e) {
$this = $(this);
$.ajax({
type: 'POST',
url: 'add',
dataType: 'JSON',
data: {product: $this.parent('.input-append').find('input').data('id'),quantity: $this.parent('.input-append').find('input').val()},
success: function (data) {
if(data.success == false){
alert('error')
}else{
if(data.message != 'undefined') {
$('#ajax_response--message').html(data.message)
}
$('.test').load(" .test");
$('.sidebar').load(" .sidebar");
$('.top').load(" .top");
}
}
});

<div class="input-append">

Twig

    <p id="ajax_response--message"> display message here </p>

</div>

关于javascript - Symfony2 Ajax 调用在特定条件下显示消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31447984/

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