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


Автор: Adept 31.3.2008, 16:53
При загрузке главной странички выполняется скрипт. Соответственно в нем переменной var param присваивается значение.
Мне надо это значение установить как значение скрытого поля
<input type="hidden" name="selected" value="null"/>
чтобы потом это значение можно было прочитать на сервере.
Формы нет, так как у меня на странице куча ссылок.
Хелп ми плиз. Как правильно сделать? 

Автор: ksnk 31.3.2008, 16:57
Значение скрытому полю устанавливается так-же как и всем остальным. Установить уникальный id и сделать
document.getElementById('MyId').value="значение";

Добавлено через 49 секунд
Цитата(Adept @  31.3.2008,  16:53 Найти цитируемый пост)
Формы нет

А сервер про остальные значения как узнаЁт?

Автор: Adept 1.4.2008, 12:01
Цитата(ksnk @ 31.3.2008,  16:57)
А сервер про остальные значения как узнаЁт?

Просто добавлю параметр в адрес ссылки.

Автор: bars80080 1.4.2008, 12:04
значит все параметры ты так же должен добавить в ссылку, а то у тебя получается, что ты хочешь и ссылку get'ом и форму post'ом
придётся выбирать

Автор: Adept 1.4.2008, 14:04
Сделал так
Код

<script type="text/javascript">
...
if(oNode.data.type == 0){   
     document.getElementById('selectedDep').value = oNode.data.label;            
} 
...
</script>


Код

<input type="hidden" name="selectedDep" value="null"/>
<input type="hidden" name="selectedUser" value="null"/>
<a href='editDepartment.htm?selectedDep=значение' >Редактировать подразделение</a><br>

 
Теперь мне надо проверить если selectedDep =null, то непереходить по данной ссылке.
Я на ссылку повесил onclick="verify();"

Код

<script type="text/javascript">
 function verify() {
  var p = document.getElementById('selectedDep'); 
  if(p.value == 'null'){
    *** как тут написать, чтобы переход по ссылке непроизошел? ***
  }
}
</script>


Автор: ksnk 1.4.2008, 14:38
Вот еще забавный способ, imho, меньше телодвижений...
Код

<form method="get" action="editDepartment.htm">
<input type="hidden" name="selectedDep" value="null"/>
<input type="hidden" name="selectedUser" value="null"/>
<input type="submit" value="Редактировать подразделение"/>
</form>

для любителей можно порекомендовать поменять стиль submit'а так. чтобы выглядел как ссылка, но и так, вроде , ничего.

А по вопросу - нужно заменить onclick="verify();" на onclick="return verify();"
Код

 if(p.value == 'null'){
    /*** как тут написать, чтобы переход по ссылке непроизошел? ***/
  return false;
  }

Автор: Adept 1.4.2008, 14:52
Спасиба за помощь, все получилось.
Тока у меня куча ссылок:
Код

<a href='addDepartment.htm' onclick="return verify();">Создать новое подразделение</a><br>
      <a href='editDepartment.htm' onclick="return verify();">Редактировать подразделение</a><br>
      <a href='removeDepartment.htm'>Удалить подразделение</a><br>      
      <a href='addUser.htm'>Создать нового пользователя</a><br>
      <a href='editUser.htm'>Редактировать пользователя</a><br>
      <a href='removeUser.htm'>Удалить пользователя</a><br>


а форма обслуживает 1 адрес
Код

<form method="get" action="editDepartment.htm">

 Так что я вижу только один выход, добавлять парматры в ссылки.

Автор: bars80080 1.4.2008, 16:34
можно сделать кучу форм, а ещё проще - один адрес и несколько сабмитов с разными именами
на один скрипт будут приходить разные параметры

Автор: Adept 2.4.2008, 09:48
Цитата(bars80080 @ 1.4.2008,  16:34)
можно сделать кучу форм, а ещё проще - один адрес и несколько сабмитов с разными именами
на один скрипт будут приходить разные параметры

А можешь показать как это сделать? А то я в js пока нибумбум, тока начал разбираться.
Ситуация такая.
На главной странице есть дерево с подразделениями и пользователями и ссылки на операции с ними (add,edit,del).
И для этих операций нужно передать имя выбранной ветки в дереве.
p.s. впринципе все работает и с таким подходом, но просто хотелось бы узнать, как это делается правильно  smile 
 

Автор: bars80080 2.4.2008, 11:14
ну честно не смотрел как там у тебя, но js здесь вообще не причём, т.е. разметка в одну сторону а проверяющие функции в другую

обычно это выглядит так:
у нас есть несколько записей, скажем статей или товаров
некто (допустим пользователь или редактор) заходят посмотреть список этих товаров
если пользователь, то просто выводится таблица со строчками - товарами
если редактор, то каждая строчка оказывается в форме + несколько кнопок
каждая форма выглядит примерно так:
Код

<form action="script.php" method="post">
<p>Наименование</p>
<p>Цена</p>
<p>доп. информация</p>
<input type="hidden" name="id" value="id_tovara" />
<input type="submit" name="modify" value="редактировать" />
<input type="submit" name="delete" value="удалить" />
</form>

наверно ясно, что наименование, цена, доп.инфо и id подставляются в цикле при формировании страницы на сервере

при нажатии одной из кнопок на сервер перешлются соответствующие переменные: $_POST['id'] и ($_POST['modify'] или $_POST['delete'])
в зависимости от того какая переменная пришла мы и заставляем работать сервеный скрипт так как надо

Автор: Adept 2.4.2008, 15:33
спасиба  smile 

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