Ir para conteúdo

POWERED BY:

Arquivado

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

ozuna

[Resolvido] php + javascript

Recommended Posts

Galera, estou montando um site para um loja de artesanatos em vela...

 

o banco de dados está funcionando perfeitamente e todo o mais tmb

 

porém preciso de uma ajuda...existem alguns produtos que precisam ser mostrados como acesos(as velas) e apagados.

 

preciso de um código em javasript que tenha a opção de mudar a foto para "acesa" qnd for clicada, mais tem que ser apenas na condição de haver mais de uma foto na tabela correspondente ao id do produto, caso contenha apenas uma foto no BD a opção de mudar a foto não apareça.

 

o código para mostrar as imagens é o seguinte:

 

 

require_once("conn.php");

$qrand = "select * from produtos where categoriaID = '1' order by id desc";
$rrand = mysql_query($qrand) or die(mysql_error());

if(mysql_num_rows($rrand) > '0')
{
	
	$Destaques = "<br /><div style=width:550px;display:block>";
	
	while($arand = mysql_fetch_array($rrand))
	{		
		$Imagem = "<img src=\"produtos/$arand[imagem]\" width=130 height=160 class=imagem>";

		$Destaques .="
<div align=center class=destaque>
    <div class=referencia align=center> Referência: $arand[id]</div>
    <div>$Imagem</div>
    <div align=center class=texto>$arand[texto]</div>
  </div>";
  

	}
	
	$Destaques .="</div>";
	
}
 
?>

 

 

espero que vocês tenham entendido o meu problema e possam me ajudar.

 

vlw

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se entendi bem, você tem duas imagens cadastradas no banco de dados. Uma está sendo mostrada e você quer que a segunda imagem seja mostrada assim que receber um clique?

Depois de clicada, ela será mostrada para os outros usuários também ou os outros usuário verão a primeira imagem até que cliquem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Humberto,

 

Seguinte, imagine um banco de dados com varios produtos, no caso são castiçais de velas, alguns produtos precisam ter foto com as velas acesas e apagadas, porém não são todos os produtos..

 

Oque eu preciso é:

quando a tabela daquele produto contenha 2 fotos ( acesa e apagada ) apareça a opção pra pessoa visualizar o produto com as velas acesas, mais que sejá possivel apenas clicando em um link tipo "velas acesas", esse link ficaria abaixo da imagem inicial, apos clicado no link, ele mude para a opção "velas apagadas". Mais eu não quero que a paginas carrege novamente, apenas mude a imagem após o clique.

 

 

Se puder me ajudar lhe agradeço muito, acredito que isso possa ser feito em javascript, porém não manjo esta linguagem.

 

Abraços,

Ozuna.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá hinom,

 

No caso eu preciso que a opção de mudar a foto apareça apenas qnd a tabela do BD contenha 2 fotos(acesa e apagada).

 

Precisaria ser dentro de uma condição IF

 

if (fotonatabela > 1){

 

opção mudar foto

 

}else{

 

apenas mostrar a foto

 

}

 

algo do tipo...

 

vlw pela atenção,

Ozuna.

Compartilhar este post


Link para o post
Compartilhar em outros sites

há vários modos de resolver

vamos adaptar o exemplo acima ao seu caso em específico, porém, mantendo o nível de escopo.

 

<script type=text/javascript>

function foo(o){

alert(o);

}

</script>

 

listagem provinda do bando de dados (exemplo)

<br><a href="javascript:;">TESTE1</a>

<br><a href="javascript:;" onclick="foo('teste2');">TESTE2</a>

<br><a href="javascript:;" onclick="foo('teste3');">TESTE3</a>

 

No primeiro não tem foto, por isso, no momento da listagem, basta não declarar o enveto OnClick

 

Entendeu a lógica ?

 

 

 

lembrando que isso é um mero exemplo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi hinom,

 

Então..eu entendi a sua lógica sim, porém note no codigo que eu postei acima, eu não declaro cada produto do banco de dados separadamente, e sim atravez do loop while...

 

 

e agora? :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

a mesma coisa.. basta montar a condicional dentro do loop

o exemplo acima está a nível de escopo somente.

 

basta seguir a lógica..

 

 

exemplo ilustrativa

if(mysql_num_rows($rrand) > '0'){


    $Imagem  = '<img src="produtos/' . $arand[imagem] . '" width=130 height=160 class=imagem';
    if( SE_POSSUIR_IMAGEM ){
        $Imagem .= ' onclick="foo(\'teste2\');"';
    }
    $Imagem .= '>';

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

hinom,

 

como não achei nada que me ajudou em javascript, resolvi fazer da seguinte maneira que segue abaixo...

 

Na área administrativa do site, apos o cadastro desse produto que contem duas fotos, o código a seguir funciona corretamente, porém sem a condição while, agora no caso da visualização para o cliente, onde preciso usar o while para listar todos os produtos, o código não funciona.

 

Será que você consegue me ajudar?

 

Segue o código:

<?php

require_once("conn.php");

$qrand = "select * from produtos where subCategoriaID = '2' order by id desc";
$rrand = mysql_query($qrand) or die(mysql_error());

if(mysql_num_rows($rrand) > '0')
{
	
	$Destaques = "<br /><div style=width:550px;display:block>";
	
	
	while($arand = mysql_fetch_array($rrand))
	{	
	
	    $im_array = explode("|", $arand[imagem]);
		
	    $Imagem = "<img src=\"produtos/$im_array[0]\" width=130 height=160 class=imagem name=imagem0>";
		
	    if($im_array[1]){
	
                $mudar_foto = "<a href=# onmouseover=\"imagem0.src='produtos/$im_array[1]'\" onmouseout=\"imagem0.src='produtos/$im_array[0]'\">mudar foro</a>";

            }	
		

            $Destaques .="
            <div align=center class=destaque>
            <div class=referencia align=center> Referência: $arand[id]</div>
            <div>$Imagem</div>
            <div align=center class=texto>$arand[texto]</div>
	    <div align=left>$mudar_foto</div>
            </div>";  
  

	}
	
    $Destaques .="</div>";
	
}
 
?>

 

A intenção é aparecer um link abaixo da foto inicial escrito:mudar foto, com a condição de mouseover mudar para a foto das velas acesas, e para isso a condição if dentro do loop while especificando que só irá aparecer o link qnd contiver 2 fotos na tabela do banco de dados, porém até os produtos que tem apenas 1 foto aparecem o link e as que tem 2 fotos não mudam qnd eu passo o mouse no link....

 

Será que consegui explicar?

 

Abraços

vlws!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hinom,

 

Eu acho que o grande problema está na hora de declarar a propriedade name da tag img.

 

Pois a cada loop, aquela propriedade recebera o mesmo nome(imagem0).

 

Declarei ela como name=$id

 

sendo $id = $n++;

 

 

 

Agora, qnd eu atribuo o $id ali onmouseover=\"$id.src='produtos/$im_array[1]'\" da erro...

 

Qual a maneira certa de declarar ali?

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

PROBLEMA RESOLVIDO

 

o problema era mesmo na declaração da prorpiedade name...

 

no tópico anterior eu estava declarando ela como numerica, este era o erro, ela precisava ser declarada como string

 

 

Se alguem quiser eu posto o código final aqui.

 

 

VLW HINOM, sem a sua dica não teria conseguido,

 

Abraços

Ozuna

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.