Ir para conteúdo

POWERED BY:

Arquivado

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

Furian

[Resolvido] Passar Array para Value do Button

Recommended Posts

Boa tarde a todos, estou com um problema aqui, to tentando passar o valor de um array que vem do resultado de um banco de dados para o value de um button, porém ele está sempre me retornando o primeiro valor que foi clicado, gostaria de saber se alguém poderia me ajudar a resolver este problema...

 

Desde já agradeço a atenção dedicada, um grande abraço, até...

 

Segue abaixo o código:

 

<script language="javascript" type="text/javascript">
function popup(){
window.open('msn.php?campo='+document.getElementById('m').value,'MSN','width=80,height=20,scrollbars=no');
}
</script>

"m" é o id do campo input.

 

O valor do input button está sendo atribuído dinâmicamente por um array vindo do banco através do mysql_fetch_array().

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte, eu tenho um array vindo de um resultado de um banco de dados e gostaria que o número deste array fosse passado como value de um campo input type button, para após isso eu efetuar a abertura de uma página que mostraria o resultado referente ao valor desse input type button, no momento o que está acontecendo é o seguinte:

 

Estou conseguindo passar corretamente o valor do array para o campo value do input, só que aparentemente quando ele faz o evento onclick do javascript só pega o valor do primeiro item do banco de dados, ou talvez até fique travado no primeiro resultado que foi clicado...

 

Entendeu?

 

Caso aind não tenha entendido me avisa falou?

 

Grande abraço, até...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo o que eu entendi, você recebe um array do banco de dados que é passado para um "button" e ao clicar nele é aberto uma nova janela que mostra as informações do mesmo.

Seguinte, eu tenho um array vindo de um resultado de um banco de dados..

 

Qual é a estrutura desse array ? É JSON ? Exemplo:

// "Array" normal
	var meuArray = new Array ();

	meuArray[0] = new Array ();
		meuArray[0][0] = "Zero - Zero";
		meuArray[0][1] = "Zero - Um";

// "Array" JSON
	var meuArray = '[["Zero - Zero","Zero - Um"]]';

...e gostaria que o número deste array fosse passado como value de um campo input type button...

 

Você quer passar o array inteiro para um único "button" ?

...para após isso eu efetuar a abertura de uma página que mostraria o resultado referente ao valor desse input type button...

 

...evento onclick do javascript só pega o valor do primeiro item do banco de dados...

 

"Primeiro valor" quer dizer primeiro parâmetro do array ? Você quer passar um objeto array via input ?

 

 

Ainda tenho muitas dúvidas, sempre é bom você postar o código, ia sim eu posso fazer uma análise detalhada e te dar uma resposta definitiva

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo o que eu entendi, você recebe um array do banco de dados que é passado para um "button" e ao clicar nele é aberto uma nova janela que mostra as informações do mesmo.

 

Seguinte, eu tenho um array vindo de um resultado de um banco de dados..

 

Qual é a estrutura desse array ? É JSON ? Exemplo:

// "Array" normal
	var meuArray = new Array ();

	meuArray[0] = new Array ();
		meuArray[0][0] = "Zero - Zero";
		meuArray[0][1] = "Zero - Um";

// "Array" JSON
	var meuArray = '[["Zero - Zero","Zero - Um"]]';

...e gostaria que o número deste array fosse passado como value de um campo input type button...

 

Você quer passar o array inteiro para um único "button" ?

...para após isso eu efetuar a abertura de uma página que mostraria o resultado referente ao valor desse input type button...

 

...evento onclick do javascript só pega o valor do primeiro item do banco de dados...

 

"Primeiro valor" quer dizer primeiro parâmetro do array ? Você quer passar um objeto array via input ?

 

 

Ainda tenho muitas dúvidas, sempre é bom você postar o código, ia sim eu posso fazer uma análise detalhada e te dar uma resposta definitiva

 

 

Você quer passar o array inteiro para um único "button" ?

 

Não é um array inteiro, é o resultado de um array associativo, é exibida uma lista onde cada item da lista possui um "id", e este "id" é quem define qual será o valor do array do button. O "id" está sendo passado corretamente, porém quando mando abrir a nova página para imprimir o valor do button só aparece o resultado do primeiro "id", ou seja, do primeiro item da lista cadastrado no banco de dados.

 

Como se fosse: Joãozinho id[0] valor[string], Renatinho id[1] valor[string]... e por aí vai... entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha Furion, eu tentei, tentei e tentei mas não consegui entender 100% do que você disse, pra mim suas palavras estão confusas dizendo coisas sobre coisas, não adianta eu te dar um código funcional que não seja o que você quer. Já que você não postou o código fonte é preferível tirar um print screen

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha Furion, eu tentei, tentei e tentei mas não consegui entender 100% do que você disse, pra mim suas palavras estão confusas dizendo coisas sobre coisas, não adianta eu te dar um código funcional que não seja o que você quer. Já que você não postou o código fonte é preferível tirar um print screen

 

 

Vou passar aqui o código fonte:

 

Código php:

	print "<input type='image' type='button' value=";
	while($re = mysql_fetch_array($ms)) {
  	print $re['ID_FOTO'];
	}
	print " src='img/msn.png' border='0' width='15' height='16' onclick='popup();' id='m'>";

Código Javascript:

 

<script language="javascript" type="text/javascript">
function popup(){
window.open('msn.php?campo='+document.getElementById('m').value,'MSN','width=80,height=20,scrollbars=no');
}
</script>

Consulta no banco de dados:

 

$ms = mysql_query("SELECT ID_FOTO FROM FOTOS");

Conteúdo de msn.php...

<?php
include_once("conexao.php");
$ca = $_GET['campo'];

$sql = mysql_query("SELECT MSN FROM FOTOS WHERE ID_FOTO='$ca'");
$res = mysql_fetch_array($sql);

print "<div align='center'><b>MSN:</b> " . $res['MSN'] . "</div>";

?>

Espero que facilite...

 

Grande abraço, até...

Compartilhar este post


Link para o post
Compartilhar em outros sites

...só que aparentemente quando ele faz o evento onclick do javascript só pega o valor do primeiro item do banco de dados...

 

...porém quando mando abrir a nova página para imprimir o valor do button só aparece o resultado do primeiro "id", ou seja, do primeiro item da lista cadastrado no banco de dados.

 

Depois que vi o código entendi porque so aparence o primeiro item, quando você faz essa consulta

 

$sql = mysql_query("SELECT MSN FROM FOTOS WHERE ID_FOTO='$ca'");

Você so vai retornar um único resultado porque é isso que esse select faz, se quiser retornar mais de um vai ter que fazer outro tipo de consulta. Fiz esse script que mais condis com sua realidade, espero que ajude:

 

index.php

<!--
	/* BANCO DE DADOS */

	create database teste default character set utf8 collate utf8_bin;

	use teste;

	create table fotos (
		id__foto int not null,
		msn varchar(10) not null,

		constraint pk__fotos primary key (id__foto)
	) engine = innoDB;

	insert into fotos (id__foto, msn) values (1, "msn_1");
	insert into fotos (id__foto, msn) values (2, "msn_2");
	insert into fotos (id__foto, msn) values (3, "msn_3");
-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en">
	<head>
		<meta http-equiv = "content-type" content = "text/html; charset=utf-8">
		
		<title></title>
		
		<script language="javascript" type="text/javascript">
			window.onload = function () {
				document.onclick = function (event) {
					var evento = window.event ? window.event : event;
					var target = evento.target ? evento.target : evento.srcElement;
					
					if (target.nodeName.toLowerCase () === "input") {
						if (target.type.toLowerCase () === "button") {
							window.open ('msn.php?campo=' + target.value, 'MSN', 'width=80, height=20, scrollbars=no');
						}
					}
				}
			}
		</script>
	</head>
	
	<body>
		<?php
			$host = "localhost";
			$usuario = "root";
			$senha = "";
			$banco = "teste";
			
			$con = mysql_connect ($host, $usuario, $senha);
			
			$bd = mysql_select_db ($banco, $con);
			
			mysql_set_charset ('utf8');
			
			$query = mysql_query ("select id__foto from fotos");
			
			while ($resultado = mysql_fetch_array ($query)) {
				print "<input type = 'button' value = '" . $resultado['id__foto'] . "' border = '0' width = '15' height = '16' class = 'botoes'>";
			}
		?>
	</body>
</html>

msn.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en">
	<head>
		<meta http-equiv = "content-type" content = "text/html; charset=utf-8">
		
		<title></title>
	</head>
	
	<body>
		<?php
			$host = "localhost";
			$usuario = "root";
			$senha = "";
			$banco = "teste";
			
			$con = mysql_connect ($host, $usuario, $senha);
			
			$bd = mysql_select_db ($banco, $con);
			
			mysql_set_charset ('utf8');
			
			$campo = $_GET['campo'];
			
			$query = mysql_query ("select msn from fotos where id__foto='$campo'");
			
			$resultado = mysql_fetch_array ($query);
			
			print "<div align='center'>
				<b>MSN:</b> " . $resultado['msn'] . 
			"</div>";
		?>
	</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Passar o array inteiro não tem jeito...

 

Use JSON ou use a função join no php para converter em string e split no JS para voltar para array...

 

Mas recomendo msm usar JSON

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado a todos pelas dicas, antes das respostas que recebi acabei achando outra solução para o problema mas vou utilizar as dicas depois com mais calma, já que tava meio que na correria pra resolver esse problema.

 

Grande abraço a todos, podem dar o tópico como resolvido, até...

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.