35

別のページにリダイレクトして、テーブルからURLにパラメータを渡す方法は?私はtornatoテンプレートでこのようなものを作成しました

<table data-role="table" id="my-table" data-mode="reflow">
    <thead>
        <tr>
            <th>Username</th>
            <th>Nation</th>
            <th>Rank</th>
            <th></th>
        </tr>
    </thead>
    <tbody>
        {% for result  in players %}
        <tr>
            <td>{{result['username']}}</td>
            <td>{{result['nation']}}</td>
            <td>{{result['rank']}}</td>
            <td><input type="button" name="theButton" value="Detail"
                       ></td>
        </tr>
    </tbody>
    {% end %}
</table>  

詳細を押すとリダイレクトされ/player_detail?username=username 、そのプレーヤーに関するすべての詳細が表示されます。内部入力タグで試しましhref="javascript:window.location.replace('./player_info');"たが、result ['username']を入れる方法がわかりません。これを行う方法は?

4

4 に答える 4

53

data-usernameボタンおよびクラスの属性としてユーザー名を設定します。

HTML

<input type="button" name="theButton" value="Detail" class="btn" data-username="{{result['username']}}" />

JS

$(document).on('click', '.btn', function() {

    var name = $(this).data('username');        
    if (name != undefined && name != null) {
        window.location = '/player_detail?username=' + name;
    }
});​

編集:

また、以下を使用してundefined&&を簡単に確認できます。null

$(document).on('click', '.btn', function() {

    var name = $(this).data('username');        
    if (name) {
        window.location = '/player_detail?username=' + name;
    }
});​

として、この回答で述べた

if (name) {            
}

値が次の場合はtrueと評価されます。

  • ヌル
  • 未定義
  • NaN
  • 空の文字列( "")
  • 0
  • false

上記のリストは、ECMA/Javascriptで発生する可能性のあるすべての偽の値を表しています。

于 2012-12-31T11:41:12.803 に答える
8

これを行う :

<script type = "text / javascript">
関数showDetails(ユーザー名)
{{
   window.location ='/ player_detail?username ='+ username;
}
</ script>

<input type = "button" name = "theButton" value = "Detail" onclick = "showDetails('username');">
于 2012-12-31T10:52:47.550 に答える
6

ボタンをバインドします。これはjQueryで行われます。

$("#my-table input[type='button']").click(function(){
    var parameter = $(this).val();
    window.location = "http://yoursite.com/page?variable=" + parameter;
});
于 2012-12-31T10:50:43.200 に答える
3

これは、JQueryに依存しない一般的なソリューションです。window.locationの定義を変更するだけです。

<html>
   <head>
      <script>
         function loadNewDoc(){ 
            var loc = window.location;
            window.location = loc.hostname + loc.port + loc.pathname + loc.search; 
         };
      </script>
   </head>
   <body onLoad="loadNewDoc()">
   </body>  
</html>
于 2016-08-10T13:22:37.153 に答える