Передача значений на страницу ASP при вызове страницы, отличном от QueryString

#javascript #asp-classic

#javascript #asp-классический

Вопрос:

У меня есть приложение, в котором значения передаются на страницу asp с помощью QueryString, как показано в приведенном ниже коде, этот вызов выполняется из функции JavaScript. Теперь мне нужно передать те же значения на страницу asp без использования QueryString , возможно ли передать значения на страницу start.asp, используя что-либо другое, кроме QueryString?

 location.href = "start.asp"  
              "?var1="   someval1 
              "amp;var2="   someval2;
  

Ответ №1:

Включите на свою страницу небольшую форму:-

 <form id="frmStart" method="POST" action="start.asp" style="display:none">
    <input name="var1" />
    <input name="var2" />
</form>
  

Тогда ваш код будет:-

  var frmStart = document.getElementById("frmStart");
 frmStart.var1.value = "val1";
 frmStart.var2.value = "val2";
 frmStart.submit();
  

«Start.asp» будет ли доступ к опубликованным значениям как:-

  Dim var1 : var1 = Request.Form("var1")
 Dim var2 : var2 = Request.Form("var2")
  

Если список возможных переменных сам по себе динамический, вы могли бы использовать некоторый javascript для динамического создания формы.

 function post (url, data)
{
    var frmStart = document.createElement("form");
    document.body.appendChild(frmStart);
    frmStart.action = "start.asp";
    frmStart.method = "POST";
    foreach (var name in data)
    {
        var inp = document.createElement("input");
        inp.name = name;
        inp.value = data[name];
        frmStart.appendChild(inp);
    }
    frmStart.submit();
} 

post("start.asp", {var1: "val1", var2: "val2"} );
  

Комментарии:

1. @AnthonyWJines: в моем случае у меня есть страница .htm, на которой есть кнопка, при нажатии на которую будет вызываться функция JavaScript, которая изменит местоположение. herf для перехода на страницу start.asp. Функция отлично сработала, большое спасибо.

Ответ №2:

Единственными двумя способами отправки значений являются GET (QueryString) или POST . Вы можете легко выполнить вызов post в JavaScript или еще проще с помощью jQuery

 $.post("start.asp", { var1: "val1", var2: "val2" } );
  

Комментарии:

1. Переходит ли jQuery .post с текущей страницы на страницу «start.asp», как это делает код в вопросе?

2. @Anthony нет, это было бы сделано через AJAX. Однако было бы просто добавить success обработчик к запросу ajax, который перенаправляет пользователя или отображает сообщения о сбое.

3. @Rory: Перенаправляет пользователя куда? снова страница Start.asp? Таким образом, start.asp должен был бы где-то сохранить начальные значения в POST, чтобы их можно было получить при последующем ПОЛУЧЕНИИ из перенаправления.

4. @AnthonyWJones: Вы правы! Но вопрос в том, как передать значения на другую страницу. Я не уверен, что OP пытается выполнить или пытается скрыть. 1 ваш ответ, который принесет гармонию во вселенную.