Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.10.2013, 16:40
Новичок на форуме
Отправить личное сообщение для mosoft02 Посмотреть профиль Найти все сообщения от mosoft02
 
Регистрация: 03.10.2013
Сообщений: 5

Не передается значение "глобальной" переменной в php-скрипт
Помогите js-нубу
Определена переменная типа глобальной, т.е. видима во всей хтмл-е. Сначала так писал в head-e
<script type="text/javascript"> nshkaf = '0' </script>

потом так (разницы в результате нет):
<script type="text/javascript"> window.nshkaf = '0' </script>


Короче, этой переменной хочется присвоить значение (здесь "e1"), в зависимости от того, на какую кнопку жмет юзер, выбирая товар:
<a href="#" onClick="vblock('e1','еще данное'); return false">заказать</a>


А vblock у нас функция в head-e:
<script type="text/javascript">
  function vblock( nsh, pokt) {
	window.nshkaf = nsh;
    document.getElementById('roditelskoe_okno').style.display = pokt;
  }
  </script>


И наконец, наша переменная nshkaf присваивается скрытому полю формы, и должна уйти php-скрипту, который ее отрабатывает:
<form name="oknoshk" action="sendform.php" method="post">
...
      <input type="hidden" name="typzakaz" value= "" />
...   
<script type="text/javascript">
  typzakaz = window.nshkaf;
</script>
...
<input  type="submit" value="Отправить" /> 
</form>


Короче, никакое значение в php не передается
Почему? Где засада?
Вроде простая совсем фигня, ан нет, не работает.
Трепетно ожидаю помощи, ибо измучилсz совсем уже...
Ответить с цитированием
  #2 (permalink)  
Старый 03.10.2013, 17:10
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

во-1, то что вы называете "типаглобальной" переменной, совсем таковой не является.
в обязательном порядке нужно использовать var

во-2, так как это сделано у вас - не получится присвоить значение переменной скрытому полю.

ну и собственно, засада в том, что вы вообще не разбираетесь в предметном вопросе, и есть два выхода - начать изучение предмета с нуля (если в перспективе хотите именно этим заниматься) и дать немного денег тому кто умеет (если вам нужно бегом-бегом сайт кому-то поправить)
Ответить с цитированием
  #3 (permalink)  
Старый 03.10.2013, 17:52
Аватар для Madzi
Аспирант
Отправить личное сообщение для Madzi Посмотреть профиль Найти все сообщения от Madzi
 
Регистрация: 15.06.2013
Сообщений: 38

Почему нельзя сразу присваивать значение скрытому полю, вместо того чтобы действовать через глобальную переменную ?
Ответить с цитированием
  #4 (permalink)  
Старый 03.10.2013, 20:27
Новичок на форуме
Отправить личное сообщение для mosoft02 Посмотреть профиль Найти все сообщения от mosoft02
 
Регистрация: 03.10.2013
Сообщений: 5

deivan, Ответ ваш, может, и достойный профессора, но... неконкретный.
Или вы намекаете, что дальше - только за деньги?
Ответить с цитированием
  #5 (permalink)  
Старый 03.10.2013, 20:29
Новичок на форуме
Отправить личное сообщение для mosoft02 Посмотреть профиль Найти все сообщения от mosoft02
 
Регистрация: 03.10.2013
Сообщений: 5

Madzi, ну, это всё в разных местах кода происходит...
Ответить с цитированием
  #6 (permalink)  
Старый 03.10.2013, 22:26
Аватар для Madzi
Аспирант
Отправить личное сообщение для Madzi Посмотреть профиль Найти все сообщения от Madzi
 
Регистрация: 15.06.2013
Сообщений: 38

А чем принципиально отличается
window.nshkaf = value;

от
document.getElementById('hf').value = value;

?
Ответить с цитированием
  #7 (permalink)  
Старый 04.10.2013, 12:42
Новичок на форуме
Отправить личное сообщение для mosoft02 Посмотреть профиль Найти все сообщения от mosoft02
 
Регистрация: 03.10.2013
Сообщений: 5

Madzi, вы меня спрашиваете? Я не знаю, честно...
Так что с моей проблемой? Пока не вижу содержательных советов
Ответить с цитированием
  #8 (permalink)  
Старый 04.10.2013, 15:26
Аватар для Madzi
Аспирант
Отправить личное сообщение для Madzi Посмотреть профиль Найти все сообщения от Madzi
 
Регистрация: 15.06.2013
Сообщений: 38

если использование вместо глобальной переменной непосредственно скрытого в дом инпута не содержательный совет, то я не знаю чем вам помочь.
Ответить с цитированием
  #9 (permalink)  
Старый 06.10.2013, 17:37
Новичок на форуме
Отправить личное сообщение для mosoft02 Посмотреть профиль Найти все сообщения от mosoft02
 
Регистрация: 03.10.2013
Сообщений: 5

А чем же плохо юзанье глоб.перем-ой? И где косяк в моем коде?
Ответить с цитированием
  #10 (permalink)  
Старый 07.10.2013, 12:19
Аватар для Madzi
Аспирант
Отправить личное сообщение для Madzi Посмотреть профиль Найти все сообщения от Madzi
 
Регистрация: 15.06.2013
Сообщений: 38

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

Иногда это не большая проблема, а иногда она может привести к переписыванию 1000+ строк кода.

Косяк в том, что у вас
typzakaz = window.nshkaf;

вместо
document.getElementById('typzakaz') = window.nshkaf;
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 16:37
Выводить значение раньше переменных Гробовщик Общие вопросы Javascript 11 10.09.2013 08:42
Возможно ли передать значение переменной в "obCanvas.fillStyle" ? salno Общие вопросы Javascript 0 01.07.2013 21:28
Чужей php скрипт wave Общие вопросы Javascript 13 20.12.2008 21:10
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 15:25