Comment rediriger sur une autre page et passer le paramètre dans l'URL de la table? J'ai créé dans le modèle de tornato quelque chose comme ça
<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>
et je voudrais quand j'appuie sur detail pour être redirigé sur /player_detail?username=username
et montrer tous les détails sur ce joueur. J'ai essayé avec href="javascript:window.location.replace('./player_info');"
dans la balise input mais je ne sais pas comment mettre le résultat ['username']. Comment faire cela?
Définissez le nom d'utilisateur sur data-username
attribut au bouton et aussi à une classe:
[~ # ~] 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;
}
});
EDIT:
En outre, vous pouvez simplement vérifier undefined
&& null
en utilisant:
$(document).on('click', '.btn', function() {
var name = $(this).data('username');
if (name) {
window.location = '/player_detail?username=' + name;
}
});
Comme mentionné dans ce réponse
if (name) {
}
sera évalué à true si la valeur n'est pas:
La liste ci-dessus représente toutes les valeurs de falsy possibles dans ECMA/Javascript.
Faire ceci:
<script type = "text/javascript"> fonction showDetails (nom d'utilisateur) { window.location = '/ player_detail? username =' + nom d'utilisateur; } </ script> <type d'entrée = "bouton" name = "leBouton" value = "Detail" onclick = "showDetails ('nomutilisateur' ); ">
Liez le bouton, cela se fait avec jQuery:
$("#my-table input[type='button']").click(function(){
var parameter = $(this).val();
window.location = "http://yoursite.com/page?variable=" + parameter;
});
Voici une solution générale qui ne repose pas sur JQuery. Modifiez simplement la définition de 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>