2011-09-09 43 views
0

我在AJAX POST操作后调用视图。但是我正在加载视图并且调用数据库数据与正在写入的数据不同步。当我加载页面时,我会查看数据库并在那里查看数据,但它并未呈现在页面上。 (我尝试了会话并得到同样的问题)。为了让视图实际呈现数据库中的数据,我需要实际刷新页面。与会话同样的事情,我需要刷新页面以便会话数据呈现。这种问题是否有共同的参考?我读了POSTBACK,这是我需要进一步研究的东西吗?这基本上是一个奇怪的同步问题,在刷新页面并重新加载之前,数据不会被生成。正在写入数据并在POST后调用不同步

+0

你能添加一些代码吗? –

+0

我真的只是寻找一个参考或如何处理POST后的PHP处理和查看加载的示例。基本上,我在我的代码中有一个'$ this-> input-> is_ajax_request()'来处理AJAX,它被调用,我在这个条件之后加载视图,但是我需要刷新页面才能真正看到数据。 – Chamilyan

回答

2

默认情况下,jQuery ajax调用是异步的。 javascript代码继续而不等待服务器返回。

因此,让看看:

$.post('source.php',function(valueFromPHP){ 
    alert(valueFromPHP) 
}); 
alert('Hello world') 

在前面的例子Hello Wold首先惊动,然后从PHP的值。

如果你想从PHP的返回值插入到你的页面,你需要将所有的代码放到的研制成功功能:

$.post('source.php',function(valueFromPHP){ 
    alert(valueFromPHP) 
    alert('Hello world') 
}); 

在第二个例子来自PHP的价值回归先警告,然后Hello world

所以,如果你想渲染从PHP接收到的数据,请确保你的代码放在成功函数中。通常这就是我们在使用jQuery ajax的时候出错的地方。

让我知道它是否有帮助!

+0

有趣的是,这非常有见地。我没有任何成功的事情。将使用这些新知识进行测试,现在为其+1。 – Chamilyan

+0

感谢您的评论。确保你的PHP使用'print'或'echo'而不是'return'来写入数据。 –

+0

我可以加载成功的codeigniter视图吗? – Chamilyan

相关问题