javascript и массив

RUNET

Новичок
javascript и массив

Я в javascript не силен...

возник вопрос.
как создать массив с данными?

данные беруться из пхп ...

хотел сделать так (пример) ..
Код:
$result.="<input type=\"checkbox\" onclick=\"myfunc(array('".$str1."','".$str2."','".$str3."'));\">";
естессено ничего не получилось ... :(

гугл как то особо не помог мне с этим вопросом.
 

cDLEON

Онанист РНРСlub
Вы слыхали, что в яваскрипте ф-и, переменные, классы имеют регистровую зависсимость ?

-~{}~ 12.12.07 12:07:

Поищите в гугле как правильно объявлять массив в яваскрипте.
 

RUNET

Новичок
Код:
	function myfunc(mystr)
	{
	 for(var i = 0; i < mystr.length; i++)
	{ 
	alert(mystr[i]);
	}
	}
...
Код:
onclick=\"myfunc(Array('".$str1."','".$str2."','".$str3."'));\">";
и new Array() делал, и myvar new Array() ...

в итоге скрипт отваливается на mystr.length

если надо было бы создать массив в <script></script> я бы даже и вопросов не задавал, там все работает ...

а вот в моем случае нифига :(((
 

Dovg

Продвинутый новичок
RUNET
[telepatmode]
а в $str1 случайно нет ничего лишнего: переводов строк, кавычек и т.д.
[/telepatmode]
 

RUNET

Новичок
нет естессено ... цЫферки тама ... и все...

p.s. не надо меня принимать уж совсем за дятла :)
 

BRat

o_0
а за кого ж еще

для начала замени Array() на []

если после этого не заработает, напиши не абстрактное '".$str1."','".$str2."' , а то что выводится
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
RUNET
Все работает.
Что-то Вы недоговариваете.
Код:
<html>
<body>
<script type="text/javascript">
function myfunc(mystr) {
	for(var i = 0; i < mystr.length; i++) { 
		alert(mystr[i]);
	}
}
</SCRIPT>
<input type="checkbox" value="" onclick="myfunc(Array('$str1','$str2','$str3'));">
</body>
</html>
 

dark-demon

d(^-^)b
> хотел сделать так (пример) .. code:

не надо так делать. используй шаблоны.
 

RUNET

Новичок
хм...

ну конечно не договариваю :)

но...

строка у меня выглядит вот так
Код:
<input type=\"checkbox\" name=\"full".$result->id."\" id=\"full".$result->id."\" value=\"".$result->id."\" onclick=\"myfunc('".$result->id."',Array('17', '3', '5'));\">
функция в яваскрипте соотвественно выглядит вот так

Код:
function myfunc(id,mystr) {
	for(var i = 0; i < mystr.length; i++) { 
		alert(mystr[i]);
	}
   ...некие действия с id ...
}
но скрипт вываливается как я уже писал с ошибкой mystr.length
length есть NULL или не является объектом ... собсно.
сча пойду гляну чего мне на это скажет firebug ..
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
RUNET
И что из того?

Меня не интерисует как у Вас выглядит строка в ПХП.
Вы пишите вопрос по Javascript.
Писать нужно _результат_ выполнения.

-~{}~ 12.12.07 12:04:

То-есть не смесь бульдога с носорогом, а ШТМЛ.
просмотрев сурс Вашей страницы
 

RUNET

Новичок
Код:
<input type="checkbox" name="full35" id="full35" value="35"  onclick="myfunc('35',Array('17', '3', '5'));">
пжаласта ... тут все нормально

-~{}~ 12.12.07 13:08:

firebug говорит что мол...
Код:
mystr has no properties
[Break on this error] for(var i = 0; i < mystr.length; i++)
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
RUNET
в коде все ок.

-~{}~ 12.12.07 13:13:
Проверялось
IE7
FF 2.0.0.9
Opera 9.23
 

berkut

Новичок
myfunc('35',Array('17', '3', '5'));
это по идее не должно работать...

myfunc('35',new Array('17', '3', '5'));
 

RUNET

Новичок
все, всем спасибо, победил ...

во всем виновата не внимательность :((((

-~{}~ 12.12.07 14:23:

собсно вот что получилось ... надеюсь я не похож на извращенца... :)

Код:
	function accessfull(id,mystr)
	{
		if(document.getElementById('full'+id).checked == true && confirm('Отметить все подразделы?') && mystr)
			{
				for(var i = 0; i < mystr.length; i++)
				{ 
					if(document.getElementById('readonly'+mystr[i]).checked == true)
					{
							document.getElementById('readonly'+mystr[i]).checked = false;
					}
					document.getElementById('full'+mystr[i]).checked = true;
				}
			}

		if(document.getElementById('readonly'+id).checked == true)
		{
			document.getElementById('readonly'+id).checked = false;

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

dimagolov

Новичок
RUNET
а какой смысл писать так:
if(document.getElementById('readonly'+mystr).checked == true)

еще интересно что вкладывается в проверку && mystr
если mystr не массив, но не пустое значение, то толку от этой проверки 0

и так и не понял, в чем была проблема? в опечатки имени массива в декларации параметров ф-ии и собственно в коде ф-ии?
 

RUNET

Новичок
Автор оригинала: dimagolov
RUNET
а какой смысл писать так:
if(document.getElementById('readonly'+mystr).checked == true)

еще интересно что вкладывается в проверку && mystr
если mystr не массив, но не пустое значение, то толку от этой проверки 0

и так и не понял, в чем была проблема? в опечатки имени массива в декларации параметров ф-ии и собственно в коде ф-ии?

1) document.getElementById('readonly'+mystr).checked == true просто есть две колонки с чекбоксами
если в одной колонке проставлен чекбокс, то во второй он должен быть снять (если был проставлен).
2) mystr может быть или массивом, или пустым значением, так что if(mystr) канает :) других вариантов не дано)
3) а проблемы уже нет. все работает. проблема была в мой не внимательности, забыл прописать кое что ... :/ просто данных много ...
каюсь, виноват
 

dimagolov

Новичок
1. я про то, что наличие или отсутствие == true не влияет ни на что
2. ню-ню... как он будет простым Object или простым типом быдет ошибка в броузер "unfefined mystr.length". про то что этого не может быть потому что не может быть никогда говорить не нужно, код используется повторно более чем регулярно
3. читайте FAQ - ВСЕГДА ПИШИТЕ РЕАЛЬНЫЙ КОД
 
Сверху