2012-11-14 312 views
0

所以我有一个页面,在请求时更新我的​​数据库。例如,当我去database_update.php它只是更新数据库,并没有显示任何东西。AJAX加载页面并在成功后重新加载/添加

Index.php显示用户数据库内容。

所以我在JavaScript函数调用update必须使用AJAX来运行这个页面,在页面加载后(毕竟查询成功运行),它必须加载index.php并显示更新的页面给用户(重装无刷新效果的页面)。

我的代码是这样的:

$.get('ajax_update_table.php', { 
    // The following is important because page saves to another table 
    // users nick which call update: 
    update: UserLogin 
}, function (output) { 
    // The following is unimportant: 
    $(myDiv).html(output).show(); 
}); 
+2

你的问题,具体是什么? –

+0

我也不确定,具体来说,你正在尝试做什么。你正在做一个Ajax调用,当完成后,你想更新页面上的一些内容*而不用重新加载整个页面? – madlee

+0

嗯,在步骤: #1转到到index.php #上链接2单击它调用函数update_database #3运行代码update_database.php(与AJAX调用它) #4时更新完成(页面加载100%)使用ajax加载index.php #5使用来自ajax(新版本的索引)的新值更改pege(步骤#1,index.php)上的内容。PHP)但没有可见的页面刷新(更像是附加在JS中,但删除旧数据,只提供新的) 希望现在更清楚:) – breq

回答

1

两个建议:

  1. 返回从database_update脚本 “成功” 或 “错误” 的代码。返回一个JSON字符串非常简单。例如:

    echo '{"success":"success"}'; 
    
  2. 使用$ .ajax函数。然后添加成功,错误和完整参数。当AJAX请求完成时,您可以调用任何JavaScript函数。

    $.ajax({ 
        url: 'update_database.php', 
        dataType: 'json', 
        success: function (data) {successFunction(data)}, 
        error: function() { error(); }, 
        complete: function() { complete(); } 
    }); 
    
    function successFunction(data) { 
        if ('success' in data) { 
         // Do success stuff here. 
        } else { 
         // Show errors here 
        } 
    } 
    // .... etc 
    
+0

对不起,代码格式不工作.... ???对StackOverflow标记语言不满意。 –

+0

好的,但如何加载整个页面(index.php)在 >如果('成功'在数据中) 和下一步将其附加到实际页面(这也是index.php) – breq

+0

为什么不只是“刷新”页面?如果您已经适当地设置了会话/ cookie值,下次索引页面加载时,它可以显示新信息。您可以使用javascript document.location.reload(true)刷新;功能。 (true会导致它从服务器重新加载,而不是缓存) –

0

我可能失去了一些东西,但我会尽量回答你的问题。

我会设置一个加载它的空白页面,将index.php发送到该页面上的div。例如,制作一个名为blank.php的页面。

blank.php将具备以下条件:

function Index(){ 
$.ajax({ 
    url:"index.php", 
    type: "GET", 
    success:function(result){ 
     $("#web-content").html(result); 
    } 
}); 
} 

<script type="text/javascript">Index();</script> 
<div id="web-content"></div> 

你将不得不索引执行索引功能更新与index.php文件数据的Web内容的div无需重新加载页面blank.php。

0

得到它的工作!

我的index.php

<html> 
<head> 
    <script type="text/javascript" language="Javascript" SRC="http://code.jquery.com/jquery-1.8.2.min.js"></script> 
    <script type="text/javascript" language="Javascript"> 
    function update_and_replace() 
     { 
      $.ajax({ 
       url: 'ajax_update_table.php', 
       dataType: 'json', 
       success: function (data) {successFunction(data)}, 
       error: function() { error(); }, 
       complete: function() { complete(); } 
      }); 
     } 

     function successFunction(data) { 
      if ('success' in data) { 
       $("#content").load("index.php"); 
      } 
     } 

    </script> 
</head> 
<body> 
<div id='content'> 
Now is: <?php echo date("Y-m-d, H:i:s");?> 
<br/><br/><br/><br/> 
<a href="javascript:void(0);" onClick="update_and_replace();">Aktualizuj</a> 
</div> 
</body> 
</html> 

Ajax_update_table.php

<?php echo '{"success":"success"}'; ?> 

感谢大家的帮助。 我知道我的英语不好,但在你的帮助下我做到了!