Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   изменение значения глобальной переменной внутри функции (https://javascript.ru/forum/server/21488-izmenenie-znacheniya-globalnojj-peremennojj-vnutri-funkcii.html)

mgmarket 12.09.2011 11:39

изменение значения глобальной переменной внутри функции
 
Драссьте...
Такая проблема.
В скрипте PHP запускаю функцию JS и передаю в функцию значение переменной $pref=3;
echo ="<script>count(".$ddd.");</script>";
в подключеном файле script.js выполняю эту функцию

var countOfFields = 0
function count(ddd)
{
window.countOfFields=ddd;
}
count();
alert(countOfFields) - выдает undefined
:blink:

при этом если внутри функции конкретно присвоить ручками число или текст, например

var countOfFields = 0
function count(ddd)
{
window.countOfFields="Привет!";
}
count();
alert(countOfFields) - выдает Привет!

Я не могу разобраться, как заставить из PHP присвоить новое значение глобальной переменной, помогите, а?

walik 12.09.2011 12:11

var countOfFields = 0;
function count(ddd)
{
window.countOfFields=ddd;
}
count(<?=$pref?>);


А почему бы сразу не сделать:
window.countOfFields = <?=$pref?>;

?

mgmarket 12.09.2011 12:36

Цитата:

Сообщение от walik
А почему бы сразу не сделать:
window.countOfFields = <?=$pref?>;

Это нужно вставить в PHP код или в подгружаемый файл script.js?

mgmarket 12.09.2011 12:38

Цитата:

Сообщение от walik
1var countOfFields = 0;2function count(ddd)3{4window.countOfFields=ddd;5}6count(<?= $pref?>)

Это не работает... вообще не выполняется...

Триви 12.09.2011 13:01

Цитата:

Сообщение от mgmarket (Сообщение 126050)
Драссьте...
Такая проблема.
В скрипте PHP запускаю функцию JS и передаю в функцию значение переменной $pref=3;
echo ="<script>count(".$ddd.");</script>";
в подключеном файле script.js выполняю эту функцию

var countOfFields = 0
function count(ddd)
{
window.countOfFields=ddd;
}
count();
alert(countOfFields) - выдает undefined
:blink:

при этом если внутри функции конкретно присвоить ручками число или текст, например

var countOfFields = 0
function count(ddd)
{
window.countOfFields="Привет!";
}
count();
alert(countOfFields) - выдает Привет!

Я не могу разобраться, как заставить из PHP присвоить новое значение глобальной переменной, помогите, а?

Это происходит, потому что в первом случае, вызывая функцию count() таким образом,
ты не присваиваешь никакого значения глобальной переменной countOfFields,
соответственно и undefined.
А во 2-м случае ты присваиваешь ей значение "Привет!",
соответственно alert(countOfFields) - выдает Привет!

mgmarket 12.09.2011 13:11

Цитата:

Сообщение от Триви (Сообщение 126064)
Это происходит, потому что в первом случае, вызывая функцию count() таким образом,
ты не присваиваешь никакого значения глобальной переменной countOfFields,
соответственно и undefined.
А во 2-м случае ты присваиваешь ей значение "Привет!",
соответственно alert(countOfFields) - выдает Привет!

Ну так а вот это в теле функции:

window.countOfFields=ddd;
где ddd параметр, переданный в функцию и при этом внутри функции

alert(window.countOfFields) прекрасно выдает значение ddd

может напишешь, как правильно сделать, плз...

Триви 12.09.2011 13:16

Не сразу заметил..
А зачем ты наструячил в подключаемом файле:
count();
alert(countOfFields)
???
Какой в этом тайный умыслел? =))

mgmarket 12.09.2011 14:20

Цитата:

Сообщение от Триви (Сообщение 126069)
Не сразу заметил..
А зачем ты наструячил в подключаемом файле:
count();
alert(countOfFields)
???
Какой в этом тайный умыслел? =))

:)
alert, это просто для проверки, ну а
count();
наверное, чтобы функция выполнилась...:-?

Триви 12.09.2011 14:25

Цитата:

Сообщение от mgmarket (Сообщение 126086)
:)
alert, это просто для проверки, ну а
count();
наверное, чтобы функция выполнилась...:-?

Ты уверен? :no: :haha:

mgmarket 12.09.2011 14:38

Нет, не уверен, я вообще плохо знаю яву :( все больше как-то PHP ближе к душе, поэтому и обратился за помощью


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