Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Использовать ссылку вместо кнопки submint


Автор: Гриша 13.6.2005, 18:12
Подскажите пожалуйста, как можно использовать ссылку для отсылки данных на сервер, вместо кнопки Submit.

Код

<input type="submit">

Автор: Black 13.6.2005, 18:48
May be:

Цитата
<input type='button' value='Жми' onclick='document.FormName.submit();' />

Автор: o.s.a. 13.6.2005, 18:50
Код

<a href='javascript:void(1);' onClick='document.formname.submit()'> link<a/>


Добавлено @ 18:53
PHP-DIRECTOR ссылку, а не кнопку

Автор: Black 13.6.2005, 19:00
o.s.a.
.. читал по диагонали, но может и кнопка пригодится smile

Автор: Гриша 13.6.2005, 19:14
РHP-DIRECTOR и O.S.A. спасибо за ответ, но я ничего не могу отправить,
выскакивает ошибка: "document.formname" - есть null - или не является объектом.

Код

<form name="form1" method="post" action="/get_order/cart.php">
<select name="new" size="1">
<option value="r1">размер 1</option>
<option value="r2">размер 2</option>                                       
<option value="r3">размер 3</option>                                        
</select>
<br><a href='javascript:void(1);' onClick='document.formname.submit()'> link<a/>
</form>


Помогите пожалуйста, сделать правильно!

Автор: Black 13.6.2005, 19:22
Вот так:

Код

<form name="form1" method="post" action="/get_order/cart.php">
<select name="new" size="1">
<option value="r1">размер 1</option>
<option value="r2">размер 2</option>                                       
<option value="r3">размер 3</option>                                        
</select>
<br /><a href='javascript:void(0);' onclick='document.form1.submit();return false;'>link<a/>
</form>

Автор: Гриша 13.6.2005, 19:28
PHP-DIRECTOR, СПАСИБО ЗА ОТВЕТ.
мне опять пишется ошибка: объект не поддерживает это свойство или метод.
НИчего не пойму. Все выходные возился, с этой проблемой. никакого результата.
Как же сделать, то.

Автор: sergejzr 13.6.2005, 19:45
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Untitled</title>
</head>
<body>
<form name="form1" id ="form1" method="post" action="get_order/card.php">
<select name="new" size="1">
<option value="r1">размер 1</option>
<option value="r2">размер 2</option>                                       
<option value="r3">размер 3</option>                                        
</select>
<br /><a href="javascript:document.getElementById('form1').submit();">link<a/>
</form>
</body>
</html>

Автор: Гриша 13.6.2005, 19:47
Вставил код на новую страницу, кнопка работает, в том смысле, что я попадаю, на страницу cart.php, но значения value (r1, r2, r3) не передаются.

Код

<form name="form1" method="post" action="/get_order/cart.php">
<select name="new" size="1">
<option value="r1">размер 1</option>
<option value="r2">размер 2</option>                                       
<option value="r3">размер 3</option>                                        
</select>
<br /><a href='javascript:void(0);' onclick='document.form1.submit();return false;'>link<a/>
</form>


Помогите разобраться. пожалуйста.
Добавлено @ 19:54
Спасибо за ответ sergej.z.
Значения value не передаются скрипту, всеравно.
Непонимаю, в чеем дело.

Автор: sergejzr 13.6.2005, 19:57
 [doHTML_g]
<iframe src="http://files.vingrad.ru/sergej.z/js/examples/post_ex/"></iframe>
[/doHTML_g]

Вот код PHP:

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Untitled</title>
</head>
<body>
<?php
print "ok<br/>";
print_r($HTTP_POST_VARS);
?>
</body>
</html>
 

Автор: Гриша 13.6.2005, 20:15
Все работает, просто у меня скрипт обрабатывал get запросы, поэтому должно быть например у меня так.
Код

<form name="form1" method="get" action="/get_order/cart.php">
<select name="new" size="1">
<option value="r1">размер 1</option>
<option value="r2">размер 2</option>                                       
<option value="r3">размер 3</option>                                        
</select>
<br /><a href='javascript:void(0);' onclick='document.form1.submit();return false;'>link<a/>
</form>


Так, что если кому надо будет тоже самое, то можно использовать то, что написал PHP-DIRECTOR или sergej.z.
Часика через два, я еще один вопросик здесь задам, поэтому же поводу.

СПАСИБО ВСЕМ КТО ОТВЕЧАЛ (ПОМОГАЛ) В ЭТОЙ ТЕМЕ МНЕ!!!

Автор: sergejzr 13.6.2005, 20:17
Используй
document.getElementById('form1').submit();

ибо стандарт.

Автор: Гриша 13.6.2005, 20:32
sergej.z буду знать. Спасибо.
Добавлено @ 20:39
sergej.z. Использовал: document.getElementById('form1').submit(); и все работает как надо, даже вопросов больше не будет наверное.

Автор: Гриша 14.6.2005, 01:34
Приведенный ниже код, работает, но есть вопрос?
Код

<form name="form1" method="get" action="/get_order/cart.php">
<select name="new" size="1">
<option value="r1">размер 1</option>
<option value="r2">размер 2</option>                                       
<option value="r3">размер 3</option>                                        
</select>
<br><a href="javascript:document.getElementById('form1').submit();">link<a/>
</form>


Я изменил вот эту строку (убрал - id="form1"):
Код

<form name="form1" id="form1" method="get" action="/get_order/cart.php">


и изменил вот эту сроку (вместо <br /> поставил <br> и вместо <a/> поставил <a>):
Код

<br /><a href="javascript:document.getElementById('form1').submit();">link<a/>


После внесенных изменений все работает, но так как у меня нету знаний в javascript, я хотел бы узнать корректны ли будут внесенные изменения. Неприведут ли эти изменения к сбоям и ошибкам на странице?

Автор: sergejzr 14.6.2005, 01:43
если ты убрал id="form1", то document.getElementById('form1') работать не будет. Скорее всего не там проверяешь smile
<br> не соответствует стандартам, так как одинарные тэги должны быть закрыты.
Если уберёшь </a> - перекосит всю страницу.

Короче так как было - правильно.

Автор: Ciber SLasH 14.6.2005, 01:47
Цитата
Я изменил вот эту строку (убрал - id="form1")

Вот это не надо убирать, потому что метод document.getElementById('form1') использует ID для поиска элемента.
В твоём случае можно убрать name="form1" ты его всё равно не используешь.

Автор: Гриша 14.6.2005, 02:03
Спасибо за ответы и помощь sergej.z и Ciber SLasH !!!

Вот так значит конечный результат должен быть:

Код

<form id="form1" method="get" action="/get_order/cart.php">

<select name="new" size="1">
<option value="r1">размер 1</option>
<option value="r2">размер 2</option>                                       
<option value="r3">размер 3</option>                                        
</select>

<br /><a href="javascript:document.getElementById('form1').submit();">link</a>

</form>



Вот эта строка такая (name="form1"):
Код

<form id="form1" method="get" action="/get_order/cart.php">


Здесь вот так вот (вместо <br> обязательно должен быть <br />, а </a> так, но не так <a/> - правильно?)
Код

<br /><a href="javascript:document.getElementById('form1').submit();">link</a>



Автор: Ciber SLasH 14.6.2005, 02:08
Всё правильно.
<br /> можно писать и как <br>. Это уже смотри спецификацию XHTML -- тогда поймёшь.

Автор: sergejzr 14.6.2005, 02:12
в стандарте не написано, что "правильней" </a>, <a /> или <a/>. Это всё равно.
Тоже и с <br />.
Вообще, тэг без "/" считается открывающим, а с "/" закрывающим

Автор: Гриша 14.6.2005, 02:15
Буду иметь ввиду Ciber SLasH.
Я использую это код на странице с расширением .php , это я пишу на всякий случай, что если вдруг при использовании кодов javascript на страницах php, есть какие-то осбенности, может тогда мне напишут об этом.
Хотя конечно разницы наверное нет php или html, для javascript.

Cпасибо sergej.z. . Буду использовать <br>, и знать о тэгах.

Автор: sergejzr 14.6.2005, 02:19
Ciber SLasH, ты не прав с <br />!!

Все странички проверяем валидатором здесь:

http://validator.w3.org/

Автор: Ciber SLasH 14.6.2005, 02:30
Цитата(sergej @ 14.6.2005, 03:19)
Ciber SLasH, ты не прав с <br />!!

И в чём я неправ ? Ведь никто не запрещает использовать <br> вместо <br />. Я не говорю что это правильно, но это осталось ещё со времён HTML 3.2

Автор: Гриша 14.6.2005, 02:31
В данном случае ну и вообще, <br> получается как открывающий или заркрывающий <br />.
Не пойму я с этим <br>.
Когда используются дескрипторы, напримет <a> - открываем и </a> - закрываем, а <br> он как-то больше открывает получается новую полустрочку.
Я всегда использую <br>.


Код

<form id="form1" method="get" action="/get_order/cart.php">

<select name="new" size="1">
<option value="r1">размер 1</option>
<option value="r2">размер 2</option>                                       
<option value="r3">размер 3</option>                                        
</select>

<br><a href="javascript:document.getElementById('form1').submit();">link</a>
<br/><a href="javascript:document.getElementById('form1').submit();">link</a>


</form>


Автор: sergejzr 14.6.2005, 02:37
Существуют двойные (<a>, <div>, <body>, ....) и одинарные (<br>, <hr>, ..) тэги.
двойные - один открывает, другой закрывет. Одинарный - он и открывающийся и закрывающийся сразу.

Поэтому открываем <br и закрываем /> вроде всё проще простого.
Если наш код соответсвует стандартам, то отображается правильно на всех браузерах. Иначе кто как хочет, тот так и отображает.

Автор: Гриша 14.6.2005, 02:42
sergej.z т.е. вот так?
Код

<br/><a href="javascript:document.getElementById('form1').submit();">link</a>


Автор: sergejzr 14.6.2005, 02:44
Да, так. Но в следующий раз спрашивай не меня, а валидатор, который именно для того и предназначен, чтобы проверять твой ХТМЛ код на соответствие стандартам:
http://validator.w3.org/

Автор: Гриша 14.6.2005, 02:56
ВСЕ, СПАСИБО sergej.z. С ВАЛИДАТОРОМ РАЗОБРАЛСЯ, ПО ЭТИМ ВОПРОСОМ БУДУ ОБРАЩАТЬСЯ ТУДА.

ПО ЭТОЙ ТЕМЕ ВСЕ ПОНЯТНО. СПАСИБО ВСЕМ ЗА ПОМОЩЬ И УЧАСТИЕ.

Автор: Ciber SLasH 14.6.2005, 03:00
2Гриша:
Скачай себе перевод спецификаций (для начала HTML 4.01).
1. http://pyramidin.narod.ru/defmse.htm
2. http://w3.hotbox.ru/

Автор: Гриша 14.6.2005, 03:09
СПАСИБО БОЛЬШОЕ Ciber SLasH. СКАЧАЮ ОБЯЗАТЕЛЬНО.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)