Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не передается значение "глобальной" переменной в php-скрипт (https://javascript.ru/forum/events/41903-ne-peredaetsya-znachenie-globalnojj-peremennojj-v-php-skript.html)

mosoft02 03.10.2013 16:40

Не передается значение "глобальной" переменной в php-скрипт
 
Помогите js-нубу :help:
Определена переменная типа глобальной, т.е. видима во всей хтмл-е. Сначала так писал в 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 совсем уже...

deivan 03.10.2013 17:10

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

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

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

Madzi 03.10.2013 17:52

Почему нельзя сразу присваивать значение скрытому полю, вместо того чтобы действовать через глобальную переменную ?

mosoft02 03.10.2013 20:27

deivan, Ответ ваш, может, и достойный профессора, но... неконкретный.
Или вы намекаете, что дальше - только за деньги?

mosoft02 03.10.2013 20:29

Madzi, ну, это всё в разных местах кода происходит...

Madzi 03.10.2013 22:26

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

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

?

mosoft02 04.10.2013 12:42

Madzi, вы меня спрашиваете? Я не знаю, честно...
Так что с моей проблемой? Пока не вижу содержательных советов :(

Madzi 04.10.2013 15:26

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

mosoft02 06.10.2013 17:37

А чем же плохо юзанье глоб.перем-ой? И где косяк в моем коде?

Madzi 07.10.2013 12:19

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

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

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

вместо
document.getElementById('typzakaz') = window.nshkaf;


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