2016-10-01 6 views
0

は、私はjQueryのの小片に#resultsのおかげと呼ばjQueryを使用してURLパラメータに応じてカスタムコンテンツを表示する最適な方法は何ですか?

<form id="form" action=""> 
    <div class="form-group"> 
     <input type="text" class="form-control" name="firstname" /> 
    </div> 
    <div class="form-group"> 
     <input type="text" class="form-control" name="lastname" /> 
    </div> 
    <button id="button" class="btn btn-default">Generate</button> 
    </form> 

あなたがそのボタンを送信すると、コンテンツがdiv要素に表示されているjQueryを使って以下のdivに提出されたデータを表示する簡単なフォームを持っていた:

$(document).ready(function(){ 
    $("button").click(function(){ 
    var data = $("form").serializeArray(); 
    $.each(data, function(i, field){ 
     $("#results").append(field.name + ": " + field.value + "<br>"); 
    }); 
    return false; 
    }); 
}); 

私は、配列をシリアライズとして、URLはこの?firstname=john&lastname=doe

ように私は人々がそのURLにアクセスすると、私の#results divの中に表示されるデータは、URLパラメータを取ることを希望に見えるint型それに応じてそれを表示します。どんな手掛かり?

+3

[JSの値をクエリ文字列を取得する方法](http://stackoverflow.com/questions/901115/how-can-i-get- query-string-values-in-javascript)を使用します。そこから 'val()'を使って適切な要素の 'value'属性を設定することができます –

+0

' window.location.search'は '?firstname = john&lastname = doe'というクエリ文字列を返すでしょう。 – varontron

+0

@RoryMcCrossan君は。問題が解決しました。 – Marwann

答えて

0

(コメントに示唆されているように)次の関数を使用すると、クエリ文字列の値を取得できます。

function getQueryVariable(variable) 
{ 
    var query = window.location.search.substring(1); 
    var vars = query.split("&"); 
    for (var i=0;i<vars.length;i++) { 
      var pair = vars[i].split("="); 
      if(pair[0] == variable){return pair[1];} 
    } 

    return(false); 
} 

は、私は、彼らにそのように表示される:

var querystringname = getQueryVariable("querystringname"); 
var querystringnamedecoded = decodeURIComponent(querystringname); //if it has a space or special characters, it'll strip the %20 (and likes) and replace them by the actual character 
$.("#divwhereyouwanttodisplayyourcontent").append(querystringnamedecoded); 
関連する問題