HTML добавить текстовое значение для действия формы - PullRequest
2 голосов
/ 24 апреля 2009

У меня есть форма, ввод текста и кнопка отправки. Как добавить значение текстового поля к действию формы, т.е.

action = "https://www.mywebsite.com/" & txtSessionId

Форма выглядит так:

<form name="form1" method="post" action="https://www.mywebsite.com/">
  <label>Your Sessions ID:
    <input type="text" name="txtSessionId" id="txtSessionId">
  </label>
  <label>
<input type="submit" name="btnContinue" id="btnContinue" value="Continue">
</label>
</form>

Я хочу, чтобы ссылка выглядела следующим образом: https://www.mywebsite.com/123456

, где 123456 вводится пользователем в текстовое поле.

Спасибо

Ответы [ 3 ]

2 голосов
/ 24 апреля 2009

Вы должны будете использовать javascript или что-то на стороне сервера, чтобы сделать это (или оба).

Javascript:

<form name="form1" method="post" action="https://www.mywebsite.com/" 
  onsubmit="location.href = this.action + this.txtSessionId.value; return false;">

Серверная часть (PHP)

if (!empty($_POST['txtSessionId']))
{
    header('Location: https://.....' . (int)$_POST['txtSessionId']);
    exit();
}
1 голос
/ 24 апреля 2009

Правильное поведение - отправить поле ввода в существующую форму, обработать его и перенаправить. Вы еще не знаете, отправил ли пользователь правильное значение ввода!

В этом случае я всегда рекомендую JavaScript, если доступность не является строгим требованием для вас.

0 голосов
/ 24 апреля 2009

Я предполагаю, что вы используете что-то вроде mod-rewrite на вашем сервере, если вы принимаете такие URL-адреса. Итак, почему бы просто не написать там правило, чтобы проверить, установлен ли txtSessionId, а затем переписать его на то, что вы хотите?

Я не знаю, как правильно писать правила перезаписи модов, но я точно знаю, что вы можете это сделать.

Если вы используете PHP, Грег представил довольно жизнеспособную альтернативу использованию mod-rewrite (или чего-то подобного).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...