带有操作和视觉信息的 web2py 按钮

发布于 2024-11-26 00:15:25 字数 241 浏览 1 评论 0原文

我有一个带有按钮和 DIV 的视图,

我试图拥有这种功能:

  1. 如果单击按钮 - 执行控制器方法(我有方法、db.insert 等) - 如果测试(在控制器方法内部)通过,按钮消失并且 div 出现(我想使用 ajax - 不刷新洞页面)

  2. 每当刷新页面时,都必须再次对按钮进行测试是否可见

谢谢

I have a view with a button and a DIV

I am trying to have this kind of functionality:

  1. if the button is clicked - a controller method is executed ( i have the method, db.insert, etc.)
    - if test (inside the controller method) is passed the button dissapears and the div appears ( I thought at using ajax - not to refresh the hole page)

  2. whenever the page is refreshed the test has to be made again for the button to be visible or not

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

jJeQQOZ5 2024-12-03 00:15:25

像这样的东西吗?

{{=DIV(A('click me',callback=URL('mycallback'),target="me"),_id="me")}}

def mycallback():
    # do whatever you need to do
    return DIV("I will appear in place of he link when you click")

Something like this?

{{=DIV(A('click me',callback=URL('mycallback'),target="me"),_id="me")}}

def mycallback():
    # do whatever you need to do
    return DIV("I will appear in place of he link when you click")
夏尔 2024-12-03 00:15:25

我查看了更多您的示例,我认为我的问题更简单(如果没有其他解决方案)
所以我所做的是在视图中使用 eval:

按钮

<input id="b_normal" type="button" value="normal" onClick="ajax('{{=URL('db_test')}}',[],':eval')" />

和控制器方法:

def db_test()

 #测试和更新
 return "jQuery('#b_normal').fadeOut();jQuery('#commDiv').show();"

进一步刷新我使用jquery,视图:

jQuery(文档).ready(function(){

var flag = '{{=flag_normal}}';
if(标志=='达')
    jQuery('#b_normal').hide();
否则 jQuery('#commDiv').hide();
});

其中 *flag_normal* 由主控制器发送

我希望这不是太低效,如果是这样,很有用

I looked in more of your examples and I think my problem was simpler ( if there isn't any other solution)
So what I did was I used eval:

button in view :

<input id="b_normal" type="button" value="normal" onClick="ajax('{{=URL('db_test')}}',[],':eval')" />

and the controller method:

def db_test()

 #tests and updates
 return "jQuery('#b_normal').fadeOut();jQuery('#commDiv').show();"

for further refresh i used jquery, in view:

jQuery(document).ready(function(){

var flag = '{{=flag_normal}}';
if(flag == 'da')
    jQuery('#b_normal').hide();
else jQuery('#commDiv').hide();
});

where *flag_normal* is sent by the main controller

I hope this is not too inefficient and if so, useful

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文