Je veux passer une requête dans un fichier caché d'une page à l'autre par une chaîne de requête. Quelqu'un peut-il m'aider avec la logique ?
Réponses
Trop de publicités?Cela vaut la peine de prendre le temps d'apprendre jQuery . Ce n'est pas très compliqué, et cela rend l'écriture de javascript beaucoup plus facile. Il existe également de nombreux plugins jQuery, tels que jquery.url .
De plus, comme l'ont suggéré d'autres posteurs, il est préférable de ne pas mettre la valeur du champ caché dans la chaîne de requête si vous souhaitez qu'elle soit affichée à l'utilisateur. Cependant, si les données sont présentes dans un champ caché, il sera toujours possible pour un utilisateur de les trouver s'il prend la peine de regarder.
Si vous voulez vraiment mettre le champ caché dans la chaîne de requête et ensuite l'extraire via un javascript non-jQuery :
hiddenFieldPage.aspx
Ce formulaire conduira l'utilisateur à processingPage.aspx?datum=someValue lorsqu'il sera soumis. Vous pourriez probablement aussi utiliser un lien ordinaire si rien d'autre ne doit être soumis en même temps.
<form method="GET" action="processingPage.aspx">
<input type="hidden" name="datum" value="someValue">
<input type="submit">
</form>
ou, en insérant la valeur à partir du code-behind :
RegisterHiddenField("datum", "someValue");
traitementPage.aspx
Ce script fera apparaître une boîte d'alerte avec la valeur de "datum" de l'URL - en supposant que la méthode du formulaire est définie sur "GET" :
<script type="text/javascript">
function getUrlParam( key ) {
// Get the query and split it into its constituent params
var query = window.location.search.substring(1);
var params = query.split('&');
// Loop through the params till we find the one we want
for( var i in params ) {
var keyValue = params[i].split('=');
if( key == keyValue[0] ) {
return keyValue[1];
}
}
// Didn't find it, so return null
return null;
}
alert( getUrlParam("datum") );
</script>
Si la méthode du formulaire était définie sur "POST" (comme c'est généralement le cas en ASP.NET), "datum" ne figurera pas dans la chaîne de requête et vous devrez le replacer sur la page :
RegisterHiddenField( "datum", Request.Form["datum"] );
Pour récupérer la valeur cachée sur la deuxième page :
var datum = document.Form1.item("datum").value;
alert( datum );
Vous pouvez facilement soumettre un formulaire sur une page qui pointe vers une autre page en utilisant la fonction action
paramètre. Par exemple, à l'intérieur de page1.aspx, mettez ce qui suit :
<form action="page2.aspx" method="GET">
<input type="hidden" name="username" value="joenobody" />
<input type="submit" />
</form>
Puisque vous utilisez la méthode "GET" au lieu de "POST", vous pouvez éventuellement utiliser Javascript pour analyser l'URL et obtenir la valeur transmise. Vous pourriez également utiliser ASPX pour stocker la valeur du champ "nom d'utilisateur" à un autre endroit de la page. Je ne connais pas ASPX (ou ASP, ou quoi que ce soit d'autre chez Microsoft), mais si vous trouvez un moyen d'obtenir quelque chose comme ce qui suit (et si vous utilisez jQuery ), il peut faire ce dont vous avez besoin. Mais honnêtement, on dirait que vous vous y prenez mal. Pouvez-vous modifier votre question pour être un peu plus précis quant à l'objectif général que vous cherchez à atteindre ?
<div id="some_div"><%= Request.form("username") %></div>
<script type='text/javascript'>
var value_needed = $('#some_div').html();
</script>
Si vous voulez dire caché au sens du formulaire HTML, votre champ sera soumis avec tous les autres champs lorsque le formulaire sera soumis. Si vous soumettez le formulaire via GET, votre champ "caché" apparaîtra en texte clair dans l'URL. Si vous ne voulez pas que les données du champ caché soient accessibles aux utilisateurs, ne mettez pas de valeur compréhensible dans ce champ.
- Réponses précédentes
- Plus de réponses