ZF ajax一般如何

时间:2012-01-07 17:29:11

标签: php ajax zend-framework jquery

我在使用zend框架和ajax时遇到了一些麻烦。

在视图中,我有一个带标签的div。当我单击UnitTab“#tabUnits”时,将显示单元视图,其中包含项目列表。还有一个添加新单位的链接,因此添加视图会加载到选项卡中。

添加单位的链接是:

<a id="addUnit" href="idBuilding/<?= $this->idBuilding ?>" href="#"><img width="16" height="16" src="/images/icons/fugue/plus-circle-blue.png"></a>

和ajax调用是:

$(document).ready(function(){

    var url = '/unit/add/'+$("#addUnit").attr('href');

    // ADD
    $("#addUnit").click(function(event){
        event.preventDefault(); // link is not executed

        $.ajax({
            url: url,
            type: 'GET',
            success: function(data) {
                $("#tabUnits").html(data);
            },
            error: function(){
                alert('An error occurred, please check before continue...');
            }
        });

    });

});

如果没有发生错误,则会添加单位并再次显示列表。

当我想编辑一个单元时,我现在怎么能这样做,知道id正在改变?

1 个答案:

答案 0 :(得分:1)

与ZF没什么共同之处,它更像是jQuery。如果要对更多元素使用相同的AJAX调用,只需更改url变量即可。像(未经测试)的东西:

<a class="link" data-url="add" id="addUnit" href="idBuilding/<?= $this->idBuilding ?>" href="#"><img width="16" height="16" src="/images/icons/fugue/plus-circle-blue.png"></a>
<a class="link" data-url="edit" id=editUnit" href="idBuilding/<?= $this->idBuilding ?>" href="#"><img width="16" height="16" src="/images/icons/fugue/plus-circle-blue.png"></a>


$(document).ready(function() {

    var url;

    // ADD
    $(".link").click(function(event){
        event.preventDefault(); // link is not executed

        url = '/unit/' + $(this).data('url') + '/' + $(this).attr('href');

        $.ajax({
            url: url,
            type: 'GET',
            success: function(data) {
                $("#tabUnits").html(data);
            },
            error: function(){
                alert('An error occurred, please check before continue...');
            }
        });

    });

});

有关数据参数的更多信息:http://api.jquery.com/data/#data-html5