2012-03-27 8 views
1

ここに私のシナリオがあります。私はページを持って、使用することができます "http://www.pearlsquirrel.com/listen.php?u=161"ページをロードすると、ajaxlinklisten.phpをAJAXを通じてlisten.phpページのdivにロードします。 jquery。私ajaxlinklisten.phpページ内の私は、次のコードを持っている:ajaxでコンテンツをロードした後にPHPがURL変数を取得できない

if (isset($_GET['u'])); 
{ 
$music3 = mysql_real_escape_string($_GET['u']); 

をしかし、何らかの理由でajaxlinklistenのためので、私この場合には161に等しく、この変数が重要であり、U、変数を取得することができませんそれを使用してページの残りの部分を処理します。私はページを読み込むためにjqueryを使用しているため、これが原因であるかどうかわかりませんが、回避策を見つける必要があります。誰もがこの問題を解決する方法を知っていますか?ありがとう!

答えて

1

これは、AJAX経由でページを読み込むときに変数が取得されないため、元の読み込みとは別に処理されるためです。あなたのページのAjaxの一部では

data: 'u=' + <?php echo $_GET['u']; ?>,

:とそれにデータを渡します。

編集

私はあなたのアヤックスは、このようなものであると想像:

$.ajax({ 
    url: a_cross_domain_url, 
    success: function(data){ 
     *do stuff 
    } 
}); 

追加より

$.ajax({ 
    data: 'u=' + <?php echo $_GET['u']; ?>, 
    type: GET, 
    url: a_cross_domain_url, 
    success: function(data){ 
     *do stuff 
    } 
}); 

それはあなたがスクリプトを実装する方法によって異なりますがそれはどこにあなたを取得する必要があります行く必要があります。

+0

方法を私は現在、私は現在使用しているのと同じ機能を使用していますか? – Eggo

+0

私の答えを更新 –

+0

@DavidNguyen:JavaScriptにGETパラメータが間違って含まれています。答えを修正してください。 – Tadeck

1

PHPを使用することができず、JavaScriptのURLパーサーを使用することができました。ここでは、私が思いついた素早いものがあります(正規表現を使用してより多くの実装を行うことができます)。

あなたのURLが "{:バー」、U: "160" www.example.com?foo=bar & U = 160、この関数はオブジェクトのfoo}戻ります"。

function parseUrl() 
{ 
    str = String(window.location); 

    var vars = new Array(); 
    var cont = true; 
    var name; 
    var val; 

    if (str.indexOf("?") > -1) 
    { 
     str = str.substring(str.indexOf("?") + 1); 

     if (str.indexOf("#") > -1) 
     { 
      str = str.substring(0, str.indexOf("#")); 
     } 

     do 
     { 
      name = str.substring(0, str.indexOf("=")); 

      if (name !== "") 
      { 
       if (str.indexOf("&") > -1) 
       { 
        val = str.substr(str.indexOf("=") + 1, str.indexOf("&") - str.indexOf("=") - 1); 
        str = str.substr(str.indexOf("&") + 1); 
       } 
       else 
       { 
        val = str.substr(str.indexOf("=") + 1); 
        cont = false; 
       } 

       vars[name] = val.replace(/[+]/g, " "); 
      } 
      else 
      { 
       cont = false; 
      } 

     } while (cont); 
    } 

    return vars; 
} 
+0

Doグローバル名前空間で混乱しないでください。 – Tadeck

関連する問題