2014-09-20 55 views
0

Django具有此相关领域的管理功能,当你按下“+”按钮,你可以添加新的数据,然后它通过jQuery附加,我假设。我查看了代码,并且无法在任何地方找到它。模仿Django的“添加”按钮管理相关领域

我该如何在PHP中模仿它?

enter image description here

所以,一旦你添加新的“类别”中,ID附加到“类别”字段在它后面的窗口。然后你提交表单和wala。这个怎么用?

+0

可能重复的[Django管理员喜欢在PHP功能](http://stackoverflow.com/questions/11118656/django-admin-like-functionality-in-php) – 2014-09-20 05:19:07

+1

@Yogesh:不是真的:那谈论的django管理员:这只是询问一个小功能。 – 2014-09-20 08:49:31

+0

马修是正确的。我在询问Django管理员非常具体的功能,而不是整个管理员本身。所以现在没有人会回答我的问题,因为它被标记为重复... – AAA 2014-09-21 08:16:36

回答

0

这是Django Admin的一个很好的功能,即使是Symfony的SonataAdminBundle也没有实现(还)。 我浏览的源代码,发现这个JavaScript函数:

Django的/的contrib /管理/静态/管理/ JS /管理/ RelatedObjectLookups.js

function showAddAnotherPopup(triggeringLink) { 
    var name = triggeringLink.id.replace(/^add_/, ''); 
    name = id_to_windowname(name); 
    href = triggeringLink.href 
    if (href.indexOf('?') == -1) { 
     href += '?_popup=1'; 
    } else { 
     href += '&_popup=1'; 
    } 
    var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes'); 
    win.focus(); 
    return false; 
} 

也许你可以把这个功能和实施你自己的PHP逻辑。当在“+”号点击调用该函数是这样的:

<a href="/admin/应用/模型/add/" class="add-another" id="add_id_tags" onclick="return showAddAnotherPopup(this);">

函数调用中没有使用jQuery的一个老式的方式进行。

对不起,我不能帮你进一步。

+0

魔术是在弹出窗口内。当您提交弹出框内的表单时,它将通过AJAX提交表单。当该请求完成后,弹出窗口中的JS将更新父窗口的DOM。有关更多信息,请阅读'window.opener'上的文档。 – Bjorn 2014-09-24 20:12:31