0

晚上好,

在主页上,我有一些带有链接的站,用于获取站测量的图表。在图表页面上,我需要在向数据库发出请求之前获取站的 ID。

例如,一个链接可以如下

<a href="#graph" data-inline="true">see the graph</a>

但是我怎样才能指定车站的ID呢?应该是

<a href="#graph?id=2" data-inline="true">see the graph</a>

还是应该是数据ID(或类似的东西)

<a href="#graph" data-id="1" data-inline="true">see the graph</a>

接下来,当然,我需要从#graph 页面获取 ID 以在我的 MySQL 请求中使用它

$( document).on( "pagebeforecreate", "#graph", function( e ) {
     $('#containerChart').css('height', Charts.resize() +'px');
});

我相信,Jquerymobile 有一个功能,不是吗?

你能帮我这个吗?

编辑:换句话说,使用 PHP,我会在源页面上创建一个链接:

<a id="source" href="target.php&id=3>target page"</a>

在目标页面上,我会写这个,以获取 ID

<?php echo $_GET['id']; ?>

我需要对 jquerymobile 做同样的事情。ma源页面是#home,ma目标页面是#graph

非常感谢

4

1 回答 1

0

非常感谢。这对我有很大帮助,这就是答案。

我让它更简单,而且效果很好(让我知道我们是否可以做得更好)

在源页面上:

<a href="#graph?id=2" data-inline="true">see the graph</a>

解析 URL 参数的函数。这是很不错的!!

var processHash = function( url ) {
    var parsed = $.mobile.path.parseUrl( url ),
        queryParameters = {},
        hashQuery = parsed.hash.split( "?" );
    // Create name: value pairs from the query parameters
    $.each( ( hashQuery.length > 1 ? hashQuery[ 1 ] : "" ).split( "&" ), function() {
        var pair = this.split( "=" );
        if ( pair.length > 0 && pair[ 0 ] ) {
            queryParameters[ pair[ 0 ] ] =
                ( pair.length > 1 ? pair[ 1 ] : true );
        }
    });
    return {
        parsed: parsed,
        cleanHash: ( hashQuery.length > 0 ? hashQuery[ 0 ] : "" ),
        queryParameters: queryParameters
    };
};

处理程序:

$(document).on( "pagecontainerbeforechange", function( event, data ) {

    // See example: https://demos.jquerymobile.com/1.4.5/navigation-hash-processing/#secondary-page?section=My%20Area
    var processedHash;
    if ( typeof data.toPage === "string" ) {
        processedHash = processHash( data.toPage );
        // Only apply to the #graph page
        if ( processedHash.cleanHash === "#graph" ) {
            // To get the value of st parameter (chage that to the name of your parameter)
            //console.log("HASH: ",processedHash.queryParameters.st);
            if(processedHash.queryParameters.st == undefined || processedHash.queryParameters.st == null || processedHash.queryParameters.st == 0)
            {
                //Load the chart of the station 1
                Charts.load(1);   
            }
            else
            {
                //Load the chart of the station of the id of st
                Charts.load(processedHash.queryParameters.st);
            }
        }
    }
    
});

这很好用。谢谢你的帮助!!

于 2021-03-06T00:10:12.317 回答