【问题标题】:How to reload Controller without redirecting/refreshing in cakephp如何在 cakephp 中重新加载控制器而不重定向/刷新
【发布时间】:2014-12-19 09:24:21
【问题描述】:

我想实现 Ajax/J-Query 来更新数据库,现在我需要在 cakephp 中重新加载我的 ctp 页面的所有内容而不刷新/重定向。

有可能吗?

请帮帮我。

我试过了

 $.ajax({
            url: 'http://localhost/projectname/Experiences/experienceadd',
            type: 'POST',
            data: {'companyname':companyname,'title':title,'monthstart':monthstart,'location':location,'yearstart':yearstart,'yearnextstart':yearnextstart,'monthnextstart':monthnextstart,'presentyeardata':presentyeardata,'description':description},
            success: function (data) {
              if(data)
              {
                mystr = '<div style="display: block; opacity: 1;" class="item mix book mix_all" data-year="2010"> <div class="pubmain"> <div class="pubassets"> <a href="#" class="pubcollapse"> <i class="icon-expand-alt"></i> </a> </div> <h4 class="pubtitle"> ' + companyname + '</h4> <div class="pubauthor"><strong>'+ title +'</strong>,'+ location+'</div> <div class="pubcite">'+ yearstart +' - '+ yearnextstart +' , <strong>'+ presentyeardata + '</strong> </div> </div> <div style="display: none;" class="pubdetails"> <h4>'+ description+'</h4> <div class="pubdetails"> <a class="icon_a icon_right_head" class="exp_rid" id="'+ data +'" href="javascript: void(0);"><i class="icon-trash"></i> Remove</a> <a class="icon_a icon_right_head" class="exp_eid" id="'+ data +'" href="javascript: void(0);"><i class="icon-pencil"></i> Edit</a> </div> </div></div>';
                $('#pexperience_details').append(mystr);    
                $("#experience-box").hide( 500, function() { });    
                $('#add-experience').show();
                $().toastmessage('showSuccessToast','your skill is successfully Saved');    
              }
              else
              {
                    $().toastmessage('showErrorToast', 'your skill is not successfully Saved');     
              }
            }
        });

但是这个只添加了一个内容区域。如果我的问题得到解决,则不需要上面的代码。 有什么想法.....?

谢谢

【问题讨论】:

  • 是的,这是可能的。但是向我们展示您尝试过的内容
  • 我试过上面的东西。

标签: php jquery ajax cakephp


【解决方案1】:

创建一个全新的控制器动作。 例如

http://localhost/projectname/Experiences/refresh

在这里你返回所有你想要刷新的内容。 您可以在当前 ajax 函数中调用此 ajax 函数(如果成功/数据)

另外,您可能想要停用布局

$this->layout = false;

【讨论】:

  • 你部分正确,但没有达到我的目标。还是谢谢。
  • 您到底想达到什么目的?如果要全部刷新,为什么不在ajax中再次调用当前页面,放到中呢?
  • 我想将所有更新的数据从数据库刷新到我当前的控制器 ctp,但我现在在同一个地方。这背后是有原因的,因为在我的 ctp 中有很多 jquery 和 ajax 调用。
  • 在您的第一篇文章中您说您需要重新加载所有数据。现在你说你只需要重新加载更新的数据。您是否只是更新了一个项目,并且您已经在“数据”变量中获得了所有信息?
  • 对,我在这里再次告诉你,但我的状态没有丢失。有没有可能..?
猜你喜欢
  • 1970-01-01
  • 2019-03-10
  • 1970-01-01
  • 1970-01-01
  • 2011-11-29
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
相关资源
最近更新 更多