2009-12-29 1 views
15

У меня есть HTML-форма, которая усекает параметр действия после "?" mark - который НЕ является желаемым поведением, которое я ищу.HTML-формы - проблема ввода типа submit с действием = URL-адрес, когда URL-адрес содержит index.aspx

Вот представитель HTML фрагмент:

<form action="http://spufalcons.com/index.aspx?tab=gymnastics&path=gym"> 
    <input type="submit" value="SPU Gymnastics"/> 
</form> 

В этом случае кнопка представить перенесет вас в «http://www.spufalcons.com/index.aspx» страницы, фактически игнорируя «вкладку = гимнастика & путь = спортзал?» Параметр. Похоже, что все страницы HTML и PHP, на которые ссылаются в action = URL, работают, как и ожидалось. Такое поведение согласовано во всех основных браузерах (IE, FF, Safari, Chrome, Opera).

Кто-нибудь видел эту проблему раньше? Или можете предложить альтернативный и/или обходной путь, совместимый с моим «чистым» подходом к веб-разработке CSS/HTML/PHP? Я попытался заменить специальные символы значениями сущности HTML без каких-либо воздействий. Я ДЕЙСТВИТЕЛЬНО не хочу отказаться от своих кнопок отправки в стиле CSS, используя Javascript или кнопки PNG или карты изображений.

Окружающая среда:

  • Веб-сервер: Apache 2.2.14
  • PHP: 5.2.10
  • ОС: Mac OS X 10.5.8
  • HTML Информация о документе:
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

ТИА - Trent

+1

Звучит странно. Вы уверены, что на самом деле POST-сообщения имеют неправильный URL-адрес, или возможно, что POST правильный, но страница .ASPX выполняет перенаправление? –

+0

Если вы используете Apache и нужно обходной путь, [есть один в другой StackOverflow ответ] [1] [1]: http://stackoverflow.com/questions/1116019/submitting-a-get- form-with-query-string-params-and-hidden-params-missing/# 16415773 – wanis

ответ

26

Поместите аргументы запроса в скрытых полях ввода:

<form action="http://spufalcons.com/index.aspx"> 
    <input type="hidden" name="tab" value="gymnastics" /> 
    <input type="hidden" name="path" value="gym" /> 
    <input type="submit" value="SPU Gymnastics"/> 
</form> 
+2

Если вы хотите, чтобы в tablbar отображалась «tab = gymnastics & path = gym», добавьте метод = «GET» в ваш тег формы, как Что ж. – Annie

+2

@Annie: атрибут 'method' не требуется; 'method =" get "' подразумевается. – Gumbo

+0

, если ваш «Индекс каталога» - index.aspx (в конфигурации apache): Может отправлять сообщения без URL-адреса.

blah blah
dsgdfg

1

Это, кажется, мой "предпочтительный" решение:

<form action="www.spufalcons.com/index.aspx?tab=gymnastics&path=gym" method="post"> <div> 
<input type="submit" value="Gymnastics"></div> 

Извините за формат презентации - я все еще пытаюсь научиться u se этот форум ....

У меня есть последующий вопрос. При взгляде на мою базу данных MySQL по URL-адресу, похоже, что ~ 30% URL-адреса должны будут использовать этот подход для обложек post/div. Это оставляет ~ 70%, что не может принять атрибут post. Например:

<form action="http://www.google.com" method="post"> 
    <div> 
    <input type="submit" value="Google"/> 
    </div></form> 

не работает. Есть ли у вас рекомендация о том, как лучше всего справиться с этим тестом теста на получение/сообщение. С моей точки зрения, я предполагаю, что используя PHP для оценки существования «?» символ в URL-адресе может быть моим лучшим подходом, хотя я не уверен, как структурировать HTML-форму для этого.

Спасибо ВАМ!

0

Я применил стилизацию CSS к привязному атрибуту HREF, полностью эмулирующему поведение кнопки, которое мне нужно (зависание, активный, фоновый цвет и т. Д. И т. Д.). Разметка HTML намного проще. A-n-d устраняет сложность get/post, связанную с использованием основанного на форме подхода.

<a class="GYM" href="http://www.spufalcons.com/index.aspx?tab=gymnastics&path=gym">Gymnastics</a> 
4

Используйте метод = POST, то он будет проходить ключ & значение.

Смежные вопросы