Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передача параметра (https://javascript.ru/forum/misc/1285-peredacha-parametra.html)

Лимонадный Джо 07.06.2008 20:45

Передача параметра
 
Задача:
Необходимо, чтобы после нажатия на ссылку менялось value у input скрытого типа, чтобы потом это значение можно было записать в базу данных и в дальнейшем использовать...

Значит, у меня есть код:
<A href=\"javascript:ReplyTo('blablabla');\">LINK</A>


(*) Нужно еще, чтобы вместо 'blablabla' подставлялся параметр из php (например, из переменной $id).

Есть JavaScript обработчик с функциями:
function ReplyTo(text){ 
if (text!="") pasteReply(text, 0);
}

function pasteReply(text, flag){ 
	document.ADD.reply_to.value = text;
}


где ADD -- FORM name, а reply_to -- input name.

В общем, если не париться с ставкой переменной (пункт (*)) и всего прочего, то все работает: при нажатии на ссылку, input (пока открытый) value меняется на 'blablabla', но как мне передать измененный параметр в обработчик формы, чтобы он добавил его в базу данных? Какие-то манипуляции с $_GET?
И как мне сделать возможным вставку php-переменной в пункте (*)?

Dmitry A. Soshnikov 07.06.2008 21:18

> Необходимо, чтобы после нажатия на ссылку менялось value у input скрытого типа

<a href="#" onclick="document.getElementById('idСкрытогоИнпута').value = 'bla-bla'; return !1;">.change value</a>


> (*) Нужно еще, чтобы вместо 'blablabla' подставлялся параметр из php (например, из переменной $id).

в самом простом случае:

... ReplyTo('<?php echo $id; ?>') ..


> но как мне передать измененный параметр в обработчик формы, чтобы он добавил его в базу данных? Какие-то манипуляции с $_GET?

Так и делайте. Скрытый инпут у Вас же в форме. Так в чем проблема? JS установит значение в инпут, а форма засабмитит запрос (какой при этом метод будет - GET или POST - определяете Вы сами; на стороне PHP анализируются суперглобальные массивы $_GET и $_POST соотвественно).

Лимонадный Джо 07.06.2008 21:25

Спасибо за ответ!
Просто я думал, что JS формирует value на стороне клиента, то есть засунуть значение он засунет, но при дальнейших действиях он пропадет...
Ведь, если я в обычный инпут засовываю значение 12, к примеру, а там было 7, то при просмотре HTML исходного когда он же будет показывать 7, а не 12...

Но вы утверждаете, что если у меня была форма:
<input type="text" name="my_input" value="7">
и если я проведу запрос на изменение (допустим, что он мне уже сделал document.FORM.my_input.value = 12), то тогда, если я после нажатия на кнопку submit-отправки в $_POST['my_input'] я получу 12, а не 7?

Gvozd 10.06.2008 22:41

Цитата:

Сообщение от Лимонадный Джо
Но вы утверждаете, что если у меня была форма:
<input type="text" name="my_input" value="7">
и если я проведу запрос на изменение (допустим, что он мне уже сделал document.FORM.my_input.value = 12), то тогда, если я после нажатия на кнопку submit-отправки в $_POST['my_input'] я получу 12, а не 7?

НУ, оно вообще-то так и есть.
ЗЫ а вы проверить не пробовали, вместо того чтоб спрашивать? это дело двух минут

Лимонадный Джо 10.06.2008 22:44

а все уже сделал :)

gaserge 25.01.2011 05:35

Подскажите пожалуеста а как менять вид ссылки при определенных нажатых кнопах:? вот такой код у меня

<select name="area" size="4" style="font-weight: bold;text-align:center">
    <option value="1">I квартал</option>
    <option value="2">II квартал</option>
    <option value="3">III квартал</option>
    <option value="4">IV квартал</option>
</select>


и еще несколько подобных надо чтобы в кнопке отправить
<input type="button" onclick="MyPage('do=nalog&area=2&year_nm=2011'); return false;" class="buttons" 
value="Отсортировать" />


менялись значения area и year_nm, в зависимости от нажатых в списке.. возможно такое?


PS . функция mypage - отсылает запрос на сервер

Aetae 25.01.2011 06:01

<select name="area" size="4" style="font-weight: bold;text-align:center">
    <option value="1" selected>I квартал</option>
    <option value="2">II квартал</option>
    <option value="3">III квартал</option>
    <option value="4">IV квартал</option>
</select>
<input type="button" onclick="alert('do=nalog&area='+document.getElementsByName('area')[0].value+'&year_nm=2011'); return false;" class="buttons"
value="Отсортировать" />

Всё это делается не так, но правильно вам всё равно не сделать на этом этапе.=\

gaserge 25.01.2011 12:17

большое спасибо за наводку.

учимся еще) когда нибудь напишу правильно))


может еще подскажете что значит правильно? так в общих словах у меня сейчас скрипт такой:
сортируются данные из мускула и выводяться кнопкой отсортировать, я использую ajax переходы между сортируемыми данными.



ps. кстати офтоп небольшой, я вроде как то давно видел то ли скрип то ли что-то такое, очень простой главное, который сумирует ячейки, находящиеся над используемой формулой, есть такое на джава, или меня глючит?

x-yuri 25.01.2011 22:19

правильно это: не мешать css и javascript с html-разметкой; не отправлять формы ajax'ом, если это не надо. А сортировать можно прямо на странице. Может быть, Aetae, чего-нибудь добавит/исправит

кстати, о том, что говорит, там сортировка происходит, говорит лишь название кнопки

не знаю про java, но javascript складывать/вычитать да, умеет :)
<table><tr><td>1<td>2</table>
<script>
    var tds = document.getElementsByTagName('td');
    var r = 0;
    for( var i=0; i<tds.length; i++ )
        r += Number(tds[i].innerHTML);
    alert(r);
</script>


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