我在使用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正在改变?
答案 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