Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Разработка и сопровождение сайтов (http://forum.sape.ru/forumdisplay.php?f=29)
-   -   Прошу помощи в написании php скрипта, изменяющего значения в форме. (http://forum.sape.ru/showthread.php?t=59011)

SergejF 24.09.2010 20:47

Прошу помощи в написании php скрипта, изменяющего значения в форме.
 
Господа,

Помогите, пожалуйста, написать php-скрипт.

Есть форма, состоящая из выпадающего списка <select> и текстового поля <input>. Необходим скрипт, который в зависимости от выбора в выпадающем списке изменял значение action в теге <form> и значение value в теге <input>.

Anadonam 24.09.2010 21:03

SergejF, ты уверен что тебе именно php нужен? - на js могу помочь !!
выкладывай сюда код - формы прям тут и поможем (гу)....

SergejF 24.09.2010 21:20

Возможно js будет лучше, чтобы страницу не перезагружать. Итак, у нас есть форма, состоящая из выпадающего списка D1 и текстового поля T1:

<form method="POST" action="XXX">

<select size="1" name="D1">
<option value="A">1</option>
<option value="B">2</option>
</select>

<input type="text" name="T1" size="20" value="1">

<input type="submit" value="Отправить" name="B1">

</form>

Необходимо, чтобы при выборе "1" в выпадающем списке значение action тега <form> было вида action="Y1", а значение value тега <input> вида value="Y2". При выборе "2" в выпадающем списке значение action тега <form> было вида action="Z1", а значение value тега <input> вида value="Z2".

justworker 24.09.2010 21:56

для формы: document.getElementById("myform").action ="bla-bla-bla"
аналогично для инпут: document.getElementById("myInput").value ="bla-bla-bla"

на селект на событие onchange повесить функцию, которая будет менять значение экшн формы и соотвественно значения у инпута

Anadonam 24.09.2010 22:10

PHP код:


<script type="text/javascript">
function 
myfunc() {
var 
document.getElementById('sel')
var 
document.getElementById('edi'
if 
s.value=="A"{e.value="1"document.form1.action="1111111";}
if 
s.value=="B"{e.value="2" document.form1.action="222222";}
}
</script>

<form method="POST" action="XXX" name="form1" id="form1">

<select size="1" id="sel" name="D1" onchange="myfunc();">
<option  value="A">1</option>
<option value="B">2</option>
</select>

<input id="edi" type="text" name="T1" size="20" value="1">    

<input type="submit" value="Отправить" name="B1">

</form> 

Добавлено через 1 минуту
чуток подкорректировать и готово не уверен по поводу onchange="myfunc()" может onselect? (просто подзабыл)

и document.form1.action="222222"; достаточно такого обращения или нужно тоже getElementBy - да и всё

Добавлено через 4 минуты
justworker, ну типа да

SergejF 24.09.2010 23:34

Спасибо за ответы, господа.

Давайте по порядку, сначала изменения в action. Вот код:

Код:

<form method="POST" action="XXX">

<select onchange="if (this.selectedIndex==1) this.form.action='URL1';" onchange="if (this.selectedIndex==2) this.form.action='URL2';" name="D1">
<option value="C">Выберите страну проживания:</option>
<option value="A">Россия</option>
<option value="B">Украина</option>
</select><br>


ФИО: <input type="text" name="name" size="40"><br>

Контактный телефон: <input type="text" name="phone" size="21"><br>

<input type="submit" value="Заказать"></form>

</form>

При выборе "Россия" всё работает, при выборе "Украина", URL2 не подставляется, остается XXX. В чем ошибка?

Anadonam 24.09.2010 23:56

onchange="if (this.selectedIndex==2

лишнее однозначно

ahsinis 24.09.2010 23:56

у вас два аттрибута onchange у тега <select>, второй отбрасывается

замените на
Код:

<select onchange="if (this.selectedIndex==1) this.form.action='URL1'; else if (this.selectedIndex==2) this.form.action='URL2'; else this.form.action='XXX'; " name="D1">
и лучше обработчик в функцию вынести, как показали в примерах выше

Anadonam 25.09.2010 00:02

Цитата:

Сообщение от ahsinis (Сообщение 915251)
и лучше обработчик в функцию вынести, как показали в примерах выше

иначе запутаетесь в синтаксисе и прочие неудобства ведь вам еще и менять value в едите...... (получится длиннючая строчка кода которую упаси бог придется еще и править в будущем когда оно забудетцо) угу

SergejF 25.09.2010 00:04

Разобрался. Тег select следовало написать в таком виде:

<select onchange="if (this.selectedIndex==1) this.form.action='URL1'; if (this.selectedIndex==2) this.form.action='URL2';" name="D1">

Теперь выбор работает. Спасибо за помощь.

Но я продолжу Вас пытать, господа. Теперь в коде:

<form method="POST" action="XXX">

<select onchange="if (this.selectedIndex==1) this.form.action='URL1'; if (this.selectedIndex==2) this.form.action='URL2';" name="D1">
<option value="C">Выберите страну проживания:</option>
<option value="A">Россия</option>
<option value="B">Украина</option>
</select><br>


ФИО: <input type="text" name="name" size="40"><br>

Контактный телефон: <input type="text" name="phone" size="21"><br>

<input type="submit" value="Заказать"></form>

</form>

необходимо, чтобы при выборе России в тег <input type="text" name="phone" size="21"> подставлялось: value="+7" , а при выборе Украины: value="+380" . Как это сделать?

Добавлено через 1 минуту
Сообщении писано до прочтения трех последних ответов. Спасибо.


Часовой пояс GMT +3, время: 22:53.

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.