2013-05-16 40 views
0

我有一個web應用程序,前端是HTML & JavaScript/jQuery和後面是PHP。將參數從Mod_rewrite傳遞給PHP,前端只包含HTML和JS

它使用醜陋的URL,像這樣,主機/應用程序/ Page.php?用戶ID = 1 ....醜! 那麼一點點的mod_rewrite現在它將/服務的網址爲URL /頁1/

RewriteRule ^page/([0-9]+)/?$ host/app/page.php?userid=$1 [NC,L] 

接着,它本來簡單的jQuery GET請求到PHP文件來獲取動態數據。

var params = A JS function to get all paramters after the ? in URL 
var userid = params.id; 

$.getJSON('host/app/page_code.php',{'userid':userid}, function(data) { 
    var blah = data.blah; 
}); 

現在使用MOD_REWRITE後,我現在沒有很好的方式獲取參數的前端,只有在頁面/ 1格式。雖然循環,並在斜槓之間獲取每個參數,但感覺不到正確的做法。

所以我打穀歌,似乎從MOD_REWRITE發送參數似乎是這樣做的方式。所以我的問題是,這怎麼可能,它是如何完成的?

如何從MOD_REWRITE的URL中獲取參數,將這些參數發送到PHP後端,然後用JSON返回對前端的響應?

編輯:我有的問題是我需要將參數從JS傳遞到PHP後端,然後得到響應。我最初從JS獲得這些參數,然後將它們傳遞給GET請求,然後根據發送的參數從PHP獲得響應。但是現在我已經在URL上使用了mod_rewrite,我無法在前端看到傳統的c = d格式的參數。它現在看起來像/ B/D爲了得到這些在JS中,我只能通過循環和獲取斜線之間的每個參數來做到這一點。這樣做似乎不正確。實際上我需要一些如何從前端的單獨頁面中獲取PHP代碼的參數。然後通過PHP代碼的響應將它傳遞迴前端,以便讓我們說出用戶標識。我不想在前端文件中使用任何php來保持它們全部分開。必須有一種方法可以將參數從url中獲取到另一個文件中的PHP代碼中,然後使用usersid發回對前端HTML & JS的響應。我對這個完整的MOD_REWRITE是新來的,對於乾淨的網站來說,它讓我感到困惑!

+0

@imsiso慣於只是把它傳遞給前端的頁面有關係嗎?我需要它從mod_rewrite,到後端PHP,然後到JSON的前端。 –

+0

編輯更多信息,希望更有意義。 –

回答

0

你可以寫一個JavaScript的反向路由器,其中給定一個URL,它返回參數。

例(非常糟糕的一個,只是給你一個想法)on jsfiddle

缺點:你必須將路線從.htacces文件中的Javascript複製。每次該文件中的內容發生變化時,您都必須在Javascript中更改。

編輯:

另一種方法

  • 不要在PHP所有的路由處理,即使不使用.htaccess,然後以JSON格式路由檢索數據。你會從一個Ajax請求訪問此

例子:

jQuery.ajax({ 
    url: 'reverse_routing.php', 
    type: 'json', 
    data: { 
     url: window.location.pathname 
    }, 
    function(params) { 
     // Do your stuff here... 
    } 
}); 
0

使用柱方法用從jquery的http://api.jquery.com/serialize/

實施例。

$("form").on("submit", function(event) { 
    event.preventDefault(); 
    console.log($(this).serialize()); 
}); 

想法在PHP意義上傳遞數據。

data = $("form").serialize(); 
$.post("serverside.php", data, function(returnData) 
{ 
    $("divid").html(returndata) 
}