生成包含数据的页面而不重新加载页面

时间:2015-01-07 11:52:58

标签: php jquery mysql get anchor

我在尝试构建基于MySQL数据库生成其内容的移动应用时遇到了以下问题。 我的问题是,当我想从页面“A”转到页面“B”时,页面“B”完全为空,除非在新选项卡中打开页面“B”,在这种情况下,它显示所请求的内容而没有任何内容缺陷。

我使用的代码(简化):

<div data-role="page" id="main">
    <div data-role='header' data-position='fixed'>
        <a href='#home' class='ui-btn-right' data-icon= 'home' data-iconpos='notext'  data-direction='reverse'></a>
        <h2>Activities</h>
    </div>
    <?php
    //(I'll keep the login and connection code out since it is irrelevant to the problem)

    $result = mysql_query("SELECT DISTINCT profession FROM members",$mysql) or die("");
    $query_amount = mysql_query("SELECT richting, COUNT(*) AS aantal FROM sport GROUP BY profession",$mysql) or die("");
    $query_membernr = mysql_query("SELECT membernr FROM members",$mysql) or die("");


    while(list($r) = mysql_fetch_row($query_amount))
    {

       $profession[]=$r;

            print ("
            <div data-role='content'>
              <ul data-role='listview' data-inset='false' id='pag1'>
                        <li>
                        <a href='index.php?richtingstack=$r#2a'>
                        <img src='images/something.jpg' height='80' align='middle' />
                        <p><h2> 
                        $r
                        </h2></p>
                        </a>
                     </li>
              </ul>
            </div>
            <div data-role='footer' data-position='fixed'><h2>Kies een activiteit</h2>
            </div>"
            ) ;


    }

    ?>


</div>

此页面(页面“A”)完美运行,由所请求数据的menas生成。 它创建了一个来自所有数据库用户的专业列表。 (成员)

当有人按下此列表中的某个按钮时,它应该转到一个页面(不重新加载整个应用程序),其中包含此职业适用的成员列表。此页面是第2a页,并与GET变量组合。

出于某种原因,当我单击其中一个按钮时,页面#2a会出现,但除了页眉和页脚之外完全没有内容,这两个页面都没有生成。

但是,如果我右键单击其中一个按钮并在新选项卡中打开链接(在不同的选项卡中重新加载应用程序,那么说)它完美无缺。如果有人能告诉我我做错了什么以便我可以继续下去,我会真的感到高兴。

3 个答案:

答案 0 :(得分:0)

如果您想要一个没有重新加载的动态网站,请使用AJAX。

答案 1 :(得分:0)

PHP无法在运行后创建内容。

您正在搜索的是AJAX(异步JavaScript和XML)。基本上,它允许您从任何地方提取内容,而无需重新加载页面。客户端部分是纯JavaScript。例如,您可以加载页面http://yourdoma.in/index.php?tab=B,然后将div data-role="content"替换为该页面中的文字。

就个人而言,我更喜欢将jQuery用于AJAX,因为使用纯javascript进行所有错误处理会使编写和读取变得非常烦人。你可以找到jQuery AJAX-Documentation here。或者,如果您想使用纯javascript,here

答案 2 :(得分:0)

为此,您只需使用Ajax即可帮助您而无需重新加载页面。假设像这样

 $.ajax({
    url: "test.php",
    type: "post",
    data: data of you want,
    success: function(content){
        $("#B").html(content);
    },
    error:function(){

        $("#B").html('Content loaded problem');
    }
});