Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lhbessa

Passar parâmetros para um array de uma função

Recommended Posts

Sds a todos,

 

Estou começando a estudar javascript, e tenho uma dúvida que acredito ser simples. Tenha uma página de nome EXECUCAO que contém uma função, cujo objetivo é passar 02 valores para 02 arrays.

function define(nome1,nome2,quant1,quant2){

var setFolders = Array (
		Array('+ nome1+',quant1),
		Array('+nome2+',quant2)
);
}
Estou com dificuldades em saber a maneira correta de passar esses valores na função.

 

Além disso, existe outro problema. Os parâmetros serão passados através de outra página, de nome IMAGEM, conforme código a seguir:

<html>	
<head>
<title>Imagens</title>
<link rel="stylesheet" href="galeria.css">
</head>
<body>
<center>
<div id="gallery"></div>
</center>
</body>
<script language="javascript" src="execucao.js"></script>
</html>

Como devo passar esses parâmetros?

Imagino que seja algo do tipo: <script language="javascript" define("Neo","Cristais",2,10); </script>

 

Mas em que parte da página IMAGEM devo colocar o código javascript com os parâmetros que quero passar?

 

Espero ter sido claro... Preciso da ajuda de vcs.

 

Agradeço a atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

<html>	
<head>
<title>Imagens</title>
<link rel="stylesheet" href="galeria.css">
<script language="javascript" src="execucao.js"></script>
</head>
<body>
<center>
<div id="gallery"></div>
<script language="javascript">
define("Neo","Cristais",2,10);
</script>
</center>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

<html>	
<head>
<title>Imagens</title>
<link rel="stylesheet" href="galeria.css">
<script language="javascript" src="execucao.js"></script>
</head>
<body>
<center>
<div id="gallery"></div>
<script language="javascript">
define("Neo","Cristais",2,10);
</script>
</center>
</body>
</html>

Mas como faço pra passar os valores corretamente, na função?

Tentei assim:

function define(nome1,nome2,quant1,quant2){

 

var setFolders = Array (

Array(''+ nome1+'',quant1),

Array(''+nome2+'',quant2)

);

}

 

Mas nao deu certo... talvez o problema esteja na composição da função... ou não?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teria um link?

Exatamente o que você queria fazer?

Estou tentando fazer uma galeria de imagens. Encontrei um script na net, que monta a galeria de fotos com base em arquivos dentro de pastas. Salvei o código em um arquivo (execucao.js). Vou postar o código que achei:

//GLOBALS

var nl = "\n";			// new line, for nice code :-)

var imgFolder = 'Galeria_maior';	//folder with subfolders that contain big images
var smallFolder = 'Galeria_menor';	//folder with subfolders that contain small images (thumbnails)

var imgName = 'foto';		//image name (e.g. the first image is photo-001 - or if you change name to "image" then the first image name is image-001)

var imgExt = 'jpg';		//extension (filetype) for big images
var smallExt = 'jpg';		//extension (filetype) for small images

var setColumns = 5;		// how many columns per page
var setRows = 0;		// how many rows to skip before scroll starts, check and adjust manually
var setHeight = 76+10+10;	// this is important for scroller: max small image (thumbnail) height + <td> padding-top + <td> padding-bottom (see css file)


//GLOBALS - GALLERY FOLDERS ('<folder>', <number of images>)

var setFolders = Array (
		Array('Neo',5),
		Array('Planta',8)
);

//GALLERY FUNCTIONS

function leadingZero(getImage){

		if (getImage < 10)setImage = "00" + getImage;
		if (getImage > 9 && getImage < 100)setImage = "0" + getImage;
		if (getImage > 99)setImage = getImage;

		return setImage;
}
function initGallery(){

	showGallery(0,setFolders[0][1],setFolders[0][0]);

}	
function showMenu(){

	returnData = '<tr><td id="menu" colspan="'+ setColumns +'"> | ';

	for (getFolder = 0; getFolder < setFolders.length; getFolder++){
		returnData += '<a href="java script:showGallery(0,'+setFolders[getFolder][1]+',\''+setFolders[getFolder][0]+'\')">'+setFolders[getFolder][0]+'</a> | ';
	}
	
	returnData += '</td></tr>'+nl;
	
	return returnData;	
	
}
function showGallery(getImage,maxImages,setFolder){
	
	i = 0;

	setScroll = Math.round(getImage / setColumns)-setRows;
	if (setScroll < 0)setScroll = 0;
	setScroll = setScroll*setHeight;

	returnData = '<table>'+nl;
	returnData += '<tr><td id="header" colspan="'+ setColumns +'">Imagens</td></tr>'+nl;
	//returnData += showMenu();
	returnData += '<tr><td id="Título" colspan="'+ setColumns +'">'+ setFolder +'</td></tr>'+nl;
	
	for (displayImage = 1; displayImage <= maxImages; displayImage++){
		
		i++;
		
		setImage = leadingZero(displayImage);
		
		if (i == 1)returnData += '<tr>'+nl;
		
		setClass = '';
		if (displayImage == getImage)setClass = ' class="selected"';
			
		returnData += '<td id="image" '+ setClass +'>';
		returnData += '<a href="java script:showImage('+ displayImage +','+ maxImages +',\''+ setFolder +'\')"><img src="'+ smallFolder +'/'+ setFolder +'/'+ imgName +'-'+ setImage +'.'+ smallExt +'"></a>'+nl;
		returnData += '</td>';
		if (i == setColumns){
			returnData += '</tr>'+nl;
			i = 0;
		}
	}
	
	if (i > 0)returnData += '<td colspan="'+ (setColumns - i) +'"></td>'+ nl +'</tr>'+nl;

	

	writeData(returnData,setScroll);
}
function showImage(getImage,maxImages,setFolder){
	
	setImage = leadingZero(getImage);

	imgNxt = getImage + 1;
	imgPre = getImage - 1;
	
	if (imgNxt > maxImages)imgNxt = 1;
	if (imgPre < 1)imgPre = maxImages;

	returnData = '<table>'+nl;
	returnData += '<tr id="selector">'+nl;
	returnData += '<td><a href="java script:showImage('+ imgPre +','+ maxImages +',\''+ setFolder +'\')">Anterior</a></td>'+nl;
	returnData += '<td align="center"><a href="java script:showGallery('+ getImage +','+ maxImages +',\''+ setFolder +'\')">Menu</a></td>'+nl;
	returnData += '<td align="right"><a href="java script:showImage('+ imgNxt +','+ maxImages +',\''+ setFolder +'\')">Próxima</a></td>'+nl;
	returnData += '</tr>'+nl;
	returnData += '<tr><td colspan="3"><a href="java script:showGallery('+ getImage +','+ maxImages +',\''+ setFolder +'\')"><img src="'+ imgFolder +'/'+ setFolder +'/'+ imgName +'-'+ setImage +'.'+ imgExt +'"></a></td></tr>'+nl;
	returnData += '<tr id="selector"><td colspan="3">'+ getImage +' / '+ maxImages +'</td></tr>'+nl;
	returnData += '</table>'+nl;
	
	writeData(returnData,0);
}
function writeData(returnData,setScroll){
	
	document.getElementById('gallery').innerHTML = returnData;
	scrollTo(0,setScroll);

}

//START

initGallery();

A parte do código responsável por identificar quais pastas serão a fonte das imagens da galeria, é a seguinte:

//GLOBALS - GALLERY FOLDERS ('<folder>', <number of images>)

var setFolders = Array (

Array('Neo',5),

Array('Planta',8)

);

 

Meu objetivo é transformar isso em uma função. Dessa forma, teria somente um arquivo *.js para montar galerias diferentes, com base nos parâmetros que quero passar na página que chamei de imagem.php.

 

O arquivo imagem.php, por sua vez, recebe um parâmetro através da url, e com isso, eu posso definir qual a galeria que quero montar com ajuda do arquivo execucao.js.

 

O arquivo imagem.php é o seguinte:

<html>	
<head>
<title>Imagens</title>
<link rel="stylesheet" href="galeria.css">
<script language="javascript" src="execucao.js"></script>
</head>
<body>
<center>
<div id="gallery"></div>
<?php if(isset($_GET["neo"])) { ?>
<script language="javascript">
defineGaleria("Neo","Planta",5,8); </script>
<?php } ?>
</center>
</body>
</html>

Ou seja: se a url for igual a www.site.com/imagem.php?neo, quero que o arquivo execucao.js monte a galeria com base nas pastas Neo (com 5 fotos), e Planta (com 8 fotos). Se a url for diferente, outras pastas servirão de fonte para a construção da galeria.

 

A minha dúvida é: como montar a função no arquivo execucao.js?

Como passar os parâmetros para essa função, no arquivo imagem.php?

 

Ficou um pouco extenso, mas espero ter sido claro.

Agradeço a atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo quando pedimos links, é por que é bem mais rapido para analizarmos do que você postar o código, eu estou sem PHP aqui na maquina para TESTAR.

 

Sem link no momento não posso lhe ajudar =/

 

Talvez só segunda ou terça assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.