изменение значения глобальной переменной внутри функции
Драссьте...
Такая проблема. В скрипте 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, время: 03:25. |