2 votes

Passage d'un champ caché d'une page à l'autre dans une chaîne de requête

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 ?

2voto

ctford Points 3599

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 );

1voto

Topher Fangio Points 7986

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>

0voto

Jeremy Stein Points 8343
<form method="get">

0voto

ctford Points 3599

Si vous utilisez method="get" sur un formulaire HTML, toutes les entrées cachées de ce formulaire seront converties en paramètres de requête.

Voir aussi la réponse de Jeremy Stein.

0voto

dnagirl Points 11581

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X