2009-04-24 5 views
2

У меня есть форма, ввод текста и кнопка отправки. Как добавить значение текстового поля в форме действия т.е.html append text value to form 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 вводится пользователем в текстовое поле.

Спасибо

ответ

2

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

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(); 
} 
+0

спасибо, я использовал метод javascript (внутри блока drupal), и он отлично работал. – Belliez

0

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

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

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

1

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

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