1

您好,我在 ZendFramework 中有一个关于 jQuery ajax 发布请求的问题,这是我的 jquery:

$("input[type=image].addToCartButton").click(function() {
    var productId = $(this).attr("id");

    $.ajax({
        type: 'POST',
        dataType: 'html',
        url: "http://localhost/ZendProjects/essence/essenceZP/public/order",
        data: {
            id: productId
        },
        success: function(data){
            alert(data);
        }
    });

});

这是我在 ZendFramework Order Controller 中的代码:

    $request = $this->getRequest();
    if($request->isXmlHttpRequest()) {
        $this->_helper->layout()->disableLayout();
        $test = 'testing ajax content';
        $this->view->test = $test;
    } else {
        $test = 'testing non-ajax content';
        $this->view->test = $test;
    }

在萤火虫控制台中我收到一个错误,但看不到错误在哪里,因为它显示 0.5 秒并隐藏..有什么想法吗?这个想法是当您单击按钮将 productId 发送到订单控制器并将其放入会话数组中时,但现在只测试 ajax 请求..

标记:

    <form action="" method="post">
        <label for=".productQuantity" style="float: left;margin-top:7px;margin-left: 5px">Количество</label>
        <input class="productQuantity" name="productQuantity" type="number" value="1" min="1" max="1000" style="width: 50px;float: left;margin-left: 7px" />
        <input type="image" id="<?php echo $product->id; ?>" name="<?php echo $this->url(array('controller' => 'order', 'action' => 'add-to-cart'), 'default', true) ?>" src="<?php echo $this->baseUrl('images/cartPut.png'); ?>" style="margin-left: 13px;" />
    </form>
4

1 回答 1

1

发生的事情是,当您单击提交按钮时,会在提交表单的同时触发 ajax 调用。

您可能想知道如果没有action="".

问题是,当 action 属性为空时,它假定它在同一页面上。我的意思是,如果你在localhost/index.phpaction=""=action="localhost/index.php"

因此,您必须通过添加禁用表单提交 action="javascript:void(0)"

您也可以为此使用 jQuery:

在jquery中取消提交?

甚至是纯 javascript(向提交事件返回 false)

于 2012-09-03T19:13:52.193 回答