gpt4 book ai didi

php - codeigniter 清除 View 输出

转载 作者:行者123 更新时间:2023-11-30 18:33:23 25 4
gpt4 key购买 nike

有没有什么方法可以“清除”当前 View 中的内容,而不必使用重定向?

我正在我的网站上实现 ajax,我注意到如果我想返回一个仅包含我想要显示的 View 的 ajax 请求的响应,我必须使用重定向。否则,如果我只是使用

$this->load->view('blah');

它将保留原始内容(在本例中为表单)并在其上添加 View 。我宁愿不使用重定向,因为我希望 url 保持不变。有什么方法可以在没有重定向或 javascript 的情况下清除当前 View 中的内容?

    <script type="text/javascript">

function updateajaxem(){


$(document).on("click", "a.ajaxem", function(e){
e.preventDefault();

var action=$(this).attr('href');
//alert(action);
if(action.indexOf('register')>0){

$("div#logininfo").load("http://localhost/testrun/auth/register/").fadeIn();

}
else if(action.indexOf('password')>0)
{
$("div#logininfo").load("http://localhost/testrun/auth/forgot_password/").fadeIn();

}

}); //end

}
</script>
<script type="text/javascript">

updateajaxem();

//$("a.ajaxem").live("click", function(e){


$(document).on("click","input:submit",function(e){
e.preventDefault();

var formaction=$(this).closest('form').attr('action');
var dataString=$(this).closest('form').serialize();
alert(dataString);
//$("div#logininfo").load(formaction,data);

$.ajax({
type: "POST",
url: formaction,
data: dataString,
// dataType: "json",
success: function(data) {
alert(data);

$("div#logininfo").html(data);
updateajaxem();


}// end of success

});





});





</script>

对于我的 codeigniter,基本上它最终是一个 重定向('任何地方');或者 $this->load->view("blah");

codeigniter 基本上是标准的 auth tank 代码,只是链接和表单是“ajax-ed”。因此,与 javascript 一起使用的 codeigniter 要么只是加载 View ,要么重定向到加载 View 的 Controller 中的另一个函数。没什么特别的。只是只有重定向才会显示新添加的 View ,而没有重定向的简单加载 View 也会显示旧内容。根据评论的建议,执行 ajax 后似乎必须通过 javascript 处理它。

但只有重定向会“清除”当前 View 内容并仅显示我想要的内容,通常是更新消息或简单的 html。但是,重定向需要另一个 url 更改。

此外,点击几下后我的“ajaxem”类事件不再被触发?这就是为什么我制作了 updateajaxem() 函数并在每次 ajax 重新加载后调用它,但是,这是行不通的。我一直在阅读,委托(delegate)是否仅适用于当前和 future 元素?

最佳答案

Any way to clear whats currently in the view without a redirect or javascript?

从技术上讲,“清除”已经发送到浏览器的内容是不可能的。如果在您的示例中甚至某些内容已经显示在浏览器中,那么从服务器端“清除”浏览器窗口通常为时已晚。

这就是重定向起作用的原因,它将命令浏览器离开页面并获得新的输出。

您可以对命令进行编码以从 DOM 中删除片段并替换其他片段,因此使用 AJAX 但这将是 javascript(而不是您要求的)。

只要您还没有将输出发送到浏览器,就可以使用output control functions in PHP­Docs 清除它。 .就像创建一个输出缓冲区并在将输出发送到浏览器之前对其进行操作

关于php - codeigniter 清除 View 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8973569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com