изменение значения глобальной переменной внутри функции
Драссьте...
Такая проблема. В скрипте 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 присвоить новое значение глобальной переменной, помогите, а? |
var countOfFields = 0;
function count(ddd)
{
window.countOfFields=ddd;
}
count(<?=$pref?>);
А почему бы сразу не сделать: window.countOfFields = <?=$pref?>; ? |
Цитата:
|
Цитата:
|
Цитата:
ты не присваиваешь никакого значения глобальной переменной countOfFields, соответственно и undefined. А во 2-м случае ты присваиваешь ей значение "Привет!", соответственно alert(countOfFields) - выдает Привет! |
Цитата:
window.countOfFields=ddd; где ddd параметр, переданный в функцию и при этом внутри функции alert(window.countOfFields) прекрасно выдает значение ddd может напишешь, как правильно сделать, плз... |
Не сразу заметил..
А зачем ты наструячил в подключаемом файле: count(); alert(countOfFields) ??? Какой в этом тайный умыслел? =)) |
Цитата:
alert, это просто для проверки, ну а count(); наверное, чтобы функция выполнилась...:-? |
Цитата:
|
Нет, не уверен, я вообще плохо знаю яву :( все больше как-то PHP ближе к душе, поэтому и обратился за помощью
|
Цитата:
|
Попробуйте:
<html> <head> <script src="script.js"></script> <script> count(<?php echo $perf?>); alert(countOfFields); </script> </head> </html> В начале подключаете файл, а потом вызываете функцию. + в самом файле не надо вызывать функцию, только тут. |
Цитата:
var countOfFields=0; // Текущее число полей
var curFieldNameId = 0; // Уникальное значение для атрибута name
var maxFieldLimit = 5; // Максимальное число возможных полей
function deleteField(a)
{
// Получаем доступ к ДИВу, содержащему поле
var contDiv = a.parentNode;
// Удаляем этот ДИВ из DOM-дерева
contDiv.parentNode.removeChild(contDiv);
// Уменьшаем значение текущего числа полей
countOfFields--;
// Возвращаем false, чтобы не было перехода по сслыке
return false;
}
function addField()
{
// Проверяем, не достигло ли число полей максимума
if (countOfFields >= maxFieldLimit)
{
alert("Число полей достигло своего максимума = " + maxFieldLimit);
return false;
}
// Увеличиваем текущее значение числа полей
countOfFields++;
// Увеличиваем ID
curFieldNameId++;
alert(curFieldNameId);
// Создаем элемент ДИВ
var div = document.createElement("div");
// Добавляем HTML-контент с пом. свойства innerHTML
div.innerHTML = "<input name=\"name_" + curFieldNameId + "\" type=\"text\" size=\"3\" value=\"\">% <a onclick=\"return deleteField(this)\" href=\"#\">[X]</a>";
// Добавляем новый узел в конец списка полей
document.getElementById("parentId").appendChild(div);
// Возвращаем false, чтобы не было перехода по сслыке
return false;
}
|
Код абсолютно рабочий.
У тебя основной файл на серваке .php? Что тебе мешает присвоить JS-переменной countOfFields значение php-переменной $perf ? var countOfFields=<?=$perf?>; Ну не генерится же у тебя с помощью php подключаемый js-файл в котором передается это значение?! Это ж глупость какая то.. |
Решил проблему топором: скрипт из подключаемого файла тупо воткнул в код php, и присвоил переменной значение, все заработало :(
Всем спасибо за помощь. |
| Часовой пояс GMT +3, время: 23:56. |