Ir para conteúdo

Arquivado

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

Sergio Murilo Cabral

Ajuda com loop em Javascript

Recommended Posts

Olá, estou com esse código abaixo:

------------------------------------------------------ INÍCIO DO CÓDIGO -----------------------------------------

<div class="" style="background:<?php echo $res['fundosite_cor']; ?>; width:588px; float:left;">

<script>
jssor_slider20_starter = function (containerId) {
var options = {
$DragOrientation: 3,
$BulletNavigatorOptions: {
$Class: $JssorBulletNavigator$,
$ChanceToShow: 2,
$ActionMode: 1,
$AutoCenter: 0,
$Steps: 1,
$Lanes: 1,
$SpacingX: 0,
$SpacingY: 0,
$Orientation: 1
}
};
var jssor_slider20 = new $JssorSlider$(containerId, options);
};
</script>
<?php
include
"conexao.php";
$codigo = $_POST['codigo'];
$img01 = $_POST['img01'];
$img02 = $_POST['img02'];
$img03 = $_POST['img03'];
$img04 = $_POST['img04'];
$titulo = $_POST['titulo'];
$preco = $_POST['preco'];
$query = mysql_query("SELECT * FROM produto ORDER BY RAND() LIMIT 9");

while($res = mysql_fetch_array($query)){
?>

<div style="background-color:<?php echo $res['fundosite_cor']; ?>;; padding:11px;" class="center_prod_box">

<div id="titulo" class="product_title">
<?php echo $res['titulo']; ?>
</div>
<!-- Jssor Slider Begin -->
<!-- To move inline styles to css file/block, please specify a class name for each element. -->
<div id="slider20_container" style="position: relative; top: 0px; left: 0px; width: 173px;
height: 173px; background-color:
<?php echo $res['fundosite_cor']; ?>;">

<!-- Loading Screen -->
<div u="loading" style="position: absolute; top: 0px; left: 0px;">
<div style="filter: alpha(opacity=70); opacity:0.7; position: absolute; display: block;
background-color: #000000; top: 0px; left: 0px;width: 100%;height:100%;">
</div>
<div style="position: absolute; display: block; background: url(img/loading.gif) no-repeat center center;
top: 0px; left: 0px;width: 100%;height:100%;">
</div>
</div>

<!-- Slides Container -->
<div u="slides" style="background-color:<?php echo $res['fundosite_cor']; ?>;cursor: move; position: absolute; left: 0px; top: 2px; height:150px; width:173px; text-align:center;
overflow: hidden;">

<div>
<a href="prod_detalhe.php?codigo=<?php echo $res['codigo']; ?>">
<img style="position:relative; top:50%; transform:translateY(-50%);"width="100" src="img_produtos/
<?php echo $res['img01']; ?>" />
</a>
</div>
<div>
<a href="prod_detalhe.php?codigo=<?php echo $res['codigo']; ?>">
<img style="position:relative; top:50%; transform:translateY(-50%);"width="100" src="img_produtos/
<?php echo $res['img02']; ?>" />
</a>
</div>
<div>
<a href="prod_detalhe.php?codigo=<?php echo $res['codigo']; ?>">
<img style="position:relative; top:50%; transform:translateY(-50%);"width="100" src="img_produtos/
<?php echo $res['img03']; ?>" />
</a>
</div>
<div>
<a href="prod_detalhe.php?codigo=<?php echo $res['codigo']; ?>">
<img style="position:relative; top:50%; transform:translateY(-50%);"width="100" src="img_produtos/
<?php echo $res['img04']; ?>" />
</a>
</div>
</div>

<!--#region Bullet Navigator Skin Begin -->
<!-- Help: http://www.jssor.com/development/slider-with-bullet-navigator-jquery.html -->
<style>
/* jssor slider bullet navigator skin 03 css */
/*
.jssorb03 div (normal)
.jssorb03 div:hover (normal mouseover)
.jssorb03 .av (active)
.jssorb03 .av:hover (active mouseover)
.jssorb03 .dn (mousedown)
*/

.jssorb03 {
position: absolute;
}
.jssorb03 div, .jssorb03 div:hover, .jssorb03 .av {
position: absolute;
/* size of bullet elment */
width: 21px;
height: 21px;
text-align: center;
line-height: 21px;
color: white;
font-size: 12px;
background: url(img/b03.png) no-repeat;
overflow: hidden;
cursor: pointer;
}
.jssorb03 div { background-position: -5px -4px; }
.jssorb03 div:hover, .jssorb03 .av:hover { background-position: -35px -4px; }
.jssorb03 .av { background-position: -65px -4px; }
.jssorb03 .dn, .jssorb03 .dn:hover { background-position: -95px -4px; }
</style>
<!-- bullet navigator container -->
<div u="navigator" class="jssorb03" style="bottom: 1px; left: 40px;">
<!-- bullet navigator item prototype -->
<div u="prototype"><div u="numbertemplate"></div></div>
</div>
<!--#endregion Bullet Navigator Skin End -->

<!-- Trigger -->
</div>
<!-- Jssor Slider End -->
<div id="preco" class="prod_price">
<span style="">
R$ <?php echo $res['preco']; ?>
</span>
</div>

<div id="carrinho" class=""><br />
<a href="prod_carrinho.php?acao=add&codigo=<?php echo $res['codigo']; ?>">
<img style="position:relative;top:50%;transform:translateY(-50%); "width="20" src="img/carrinho.png" title="Por no Carrinho" />
</a>
</div>
<hr id="linha1" />
<hr id="linha2" />
</div>
<?php
}
?>

</div>
<script>
jssor_slider20_starter('slider20_container');
</script>
</div>

 

-------------------------------------------------------- FIM DO CÓDIGO -------------------------------------------

A finalidade é ao acessar a página gostaria que aparecesse 9 produtos aleatórios (No momento tenho apenas 02 produtos listados). Para isso achei que somente dando um WHILE no código php funcionaria, mas puro engano, pois somente consigo dar loop nos arquivos que estão na tabela produtos, mas não consigo fazer com que o script funcione no segundo produto listado.

Não estou sabendo fazer com que o script se repita (LOOP). Já pesquisei alguns poster ate mesmo no W3schools, mas não consegui aplicar a logica em meu script, talvez por ser muito leigo em JavaScript.

Estou anexando abaixo o endereço de acesso para que os amigos possam dar uma analisada e me dizer o que esta faltando ou como posso faze-lo funcionar.


Página com o Problema - http://lccinformatica.com.br/prod_index.php


Espero ter conseguido me expressar ao modo que os amigos possam entender a minha necessidade.

Abraços à todos e no aguardo se possível de respostas positivas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei o que é mas bati o olho e:

<!-- Slides Container -->
<div u="slides"... 

O correto não seria id="slides" ou class="slides" algo do gênero?

 

Quantos produtos você tem nessa tabela produto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em relação a DIV eu mantive do jeito que esta no projeto da JQuery, e tenho apenas dois produtos cadastrados na tabela produto, Placa Mãe e Geladeira, ambos somente para testar.

Me parece que o problema estar em dar um loop no script que organiza e da movimento na escolha dos botões enumerados para mudar a imagem. Pode reparar que o primeiro item sempre esta funcionando.

Já pesquisei ate mesmo na W3schools - http://www.w3schools.com/js/js_loop_while.asp, que me oferece algumas dicas mas como sou muito leigo em JavaScript não consegui entender a logica para implantar no meu script.

Se tiveres alguma ideia de como devo proceder para coloca-lo funcionando, ficarei agradecido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver o problema!!!

A solução foi iniciar o loop antes do Script, inserir o código de cada produto cadastrado na tabela produtos na linha do script referente ao mesmo, na <div id="slider<?php echo $res['codigo']; ?>_container" e lá no final do código passei o segundo script para dentro do Loop com o código dos produtos inserido nele tambem, ficando assim o código:

 

--------------------------- Início do Código ----------------------------------------

 

<?php

include "conexao.php";
$codigo = $_POST['codigo'];
$img01 = $_POST['img01'];
$img02 = $_POST['img02'];
$img03 = $_POST['img03'];
$img04 = $_POST['img04'];
$titulo = $_POST['titulo'];
$preco = $_POST['preco'];
$query = mysql_query("SELECT * FROM produto ORDER BY RAND() LIMIT 9");
while($res = mysql_fetch_array($query)){
?>

<script>
jssor_slider<?php echo $res['codigo']; ?>_starter = function (containerId) {
var options = {
$DragOrientation: 3,
$BulletNavigatorOptions: {
$Class: $JssorBulletNavigator$,
$ChanceToShow: 2,
$ActionMode: 1,
$AutoCenter: 0,
$Steps: 1,
$Lanes: 1,
$SpacingX: 0,
$SpacingY: 0,
$Orientation: 1
}
};
var jssor_slider<?php echo $res['codigo']; ?> = new $JssorSlider$(containerId, options);
};
</script>

 

<div style="background-color:<?php echo $res['fundosite_cor']; ?>;; padding:11px;" class="center_prod_box">

<div id="titulo" class="product_title">
<?php echo $res['titulo']; ?>
</div>
<!-- Jssor Slider Begin -->
<!-- To move inline styles to css file/block, please specify a class name for each element. -->
<div id="slider<?php echo $res['codigo']; ?>_container" style="position: relative; top: 0px; left: 0px; width: 173px;
height: 173px; background-color:<?php echo $res['fundosite_cor']; ?>;">
<!-- Loading Screen -->
<div u="loading" style="position: absolute; top: 0px; left: 0px;">
<div style="filter: alpha(opacity=70); opacity:0.7; position: absolute; display: block;
background-color: #000000; top: 0px; left: 0px;width: 100%;height:100%;">
</div>
<div style="position: absolute; display: block; background: url(img/loading.gif) no-repeat center center;
top: 0px; left: 0px;width: 100%;height:100%;">
</div>
</div>
<!-- Slides Container -->
<div u="slides" style="background-color:<?php echo $res['fundosite_cor']; ?>;cursor: move; position: absolute; left: 0px; top: 2px; height:150px; width:173px; text-align:center;
overflow: hidden;">
<div>
<a href="prod_detalhe.php?codigo=<?php echo $res['codigo']; ?>">
<img style="position:relative; top:50%; transform:translateY(-50%);"width="100" src="img_produtos/<?php echo $res['img01']; ?>" />
</a>
</div>
<div>
<a href="prod_detalhe.php?codigo=<?php echo $res['codigo']; ?>">
<img style="position:relative; top:50%; transform:translateY(-50%);"width="100" src="img_produtos/<?php echo $res['img02']; ?>" />
</a>
</div>
<div>
<a href="prod_detalhe.php?codigo=<?php echo $res['codigo']; ?>">
<img style="position:relative; top:50%; transform:translateY(-50%);"width="100" src="img_produtos/<?php echo $res['img03']; ?>" />
</a>
</div>
<div>
<a href="prod_detalhe.php?codigo=<?php echo $res['codigo']; ?>">
<img style="position:relative; top:50%; transform:translateY(-50%);"width="100" src="img_produtos/<?php echo $res['img04']; ?>" />
</a>
</div>
</div>
<!--#region Bullet Navigator Skin Begin -->
<style>
/* jssor slider bullet navigator skin 03 css */
/*
.jssorb03 div (normal)
.jssorb03 div:hover (normal mouseover)
.jssorb03 .av (active)
.jssorb03 .av:hover (active mouseover)
.jssorb03 .dn (mousedown)
*/
.jssorb03 {
position: absolute;
}
.jssorb03 div, .jssorb03 div:hover, .jssorb03 .av {
position: absolute;
/* size of bullet elment */
width: 21px;
height: 21px;
text-align: center;
line-height: 21px;
color: white;
font-size: 12px;
background: url(img/b03.png) no-repeat;
overflow: hidden;
cursor: pointer;
}
.jssorb03 div { background-position: -5px -4px; }
.jssorb03 div:hover, .jssorb03 .av:hover { background-position: -35px -4px; }
.jssorb03 .av { background-position: -65px -4px; }
.jssorb03 .dn, .jssorb03 .dn:hover { background-position: -95px -4px; }
</style>
<!-- bullet navigator container -->
<div u="navigator" class="jssorb03" style="bottom: 1px; left: 40px;">
<!-- bullet navigator item prototype -->
<div u="prototype"><div u="numbertemplate"></div></div>
</div>
<!--#endregion Bullet Navigator Skin End -->
<!-- Trigger -->
</div>
<!-- Jssor Slider End -->
<div id="preco" class="prod_price">
<span style="">
R$ <?php echo $res['preco']; ?>
</span>
</div>
<div id="carrinho" class=""><br />
<a href="prod_carrinho.php?acao=add&codigo=<?php echo $res['codigo']; ?>">
<img style="position:relative;top:50%;transform:translateY(-50%); "width="20" src="img/carrinho.png" title="Por no Carrinho" />
</a>
</div>
<hr id="linha1" />
<hr id="linha2" />
</div>
<script>
jssor_slider<?php echo $res['codigo']; ?>_starter('slider<?php echo $res['codigo']; ?>_container');
</script>
<?php
}
?>
</div>

--------------------------- Início do Código ----------------------------------------

Espero que esse post venha ajudar a outros usuários com o mesmo problema.

Agradeço a atenção, e grande abraço à todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Carcleo
      Estou começando no Laravel 11 e me deparei com um problema de belongsTo
       
      public function listOfClass(Request $request, StudentDisciplineClassroom $sdc) : ?string {         $all = $sdc::select('student')->with('studentRelation')->where('classroom',$request->classroom)->distinct('student')->get();     dd($all->toArray());     $students = [];     foreach ($all as $student) {             $students[] =$student;     }       return response()->json($students)->getContent();     } isso

      Em studentRelation temos na tabela StudentDisciplineClassroom com os campos

      id(chave primaria)
      ra (chave estrangera que referencia o campo academic_registration na tabela de students)

      e a tabela student tem os campos

      id (chave primária)
      academic_registration (que vai ser refeenciada na tabela StudentDisciplineClassroom

      Mas na hora de fazer
      $sdc::select('student')->with('studentRelation')->where('classroom',$request->classroom)->distinct('student')->get();
      O studentRelation retorna nulo

      Onde eu posso estar errando?
    • Por joao b silva
      Tenho uma pequena aplicação em php que gera arquivos pdf com a MPDF e envia email com a PHPMAILER. De repente a app parou de enviar os emails  e apresenta a seguinte mensagem de erro:
       
      Error PHPMailer: SMTP Error: Could not authenticate.
       
      Faço uso de um hotmail para a configuração do PHPMAILER.
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de poder tirar uma dúvida com os amigos.
       
      Como faço uma função para Comparar a Data Digitada pelo o Usuário com a Data Atual ?

      Data Digitada:  01/09/2024
       
      Exemplo:
      25/09/2024 é menor que DATA Atual  ====> mensagem: informe uma data válida.
      25/09/2024 é igual DATA Atual ===> o sistema libera os INPUT's.
       
      Como faço uma comparação com a Data Atual, para não Deixar Gravar Data retroativa a data Atual.
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos.
       
      Quando programava em DOS. utilizava algumas teclas de atalho para: SALVAR / EDITAR / EXCLUIR / IMPRIMIR.
      Por exemplo:
      Salvar ----> ALT+S
      Editar ----> ALT+E
      Excluir --> ALT+X
      Imprimir -> ALT+I

      no PHP tem como colocar esses ATALHOS nos button, para o usuário trabalhar com esses atalhos e como seria ?

      grato,
       
      Cesar
    • Por violin101
      Caros Amigos, saudações.
       
      Por favor, me perdoa em postar uma dúvida.
       
      Preciso criar uma Rotina onde o usuário possa buscar na Base de Dados de Produtos, tanto por Código e Descrição, ou seja:
      - caso o usuário digita o Código, mostra os dados do Produto.
      - caso o usuário digita a Descrição, mostra os dados do Produto
       
      Fiz uma Rotina, onde o usuário digita a DESCRIÇÃO com a função AUTOCOMPLETE.    <=== está funcionando certinho.
       
      Minha dúvida é como faço para DIGITAR o Código e mostrar os dados também.
       
      o meu AutoComplete na MODEL está assim.
      public function autoCompleteProduto($q){ $this->db->select('*' ) ->from('produtos') ->where('produtos.statusProd',1) ->like('descricao', $q) ->limit(5) ->order_by('descricao', 'ASC'); $query = $this->db->get(); if ($query->num_rows() > 0) { foreach ($query->result_array() as $row) { $row_set[] = ['label' => str_pad($row['idProdutos'], '5', '0', STR_PAD_LEFT).' - '.$row['descricao'], 'id' => $row['idProdutos'], 'descricao' => $row['descricao'], 'cod_interno' => $row['cod_interno'], 'prd_unid' => $row['prd_unid'], 'estoque_atual' => $row['estoque_atual'] ]; } echo json_encode($row_set); } }  
       
      no CONTROLLER está assim:
      public function autoCompleteProduto() { $this->load->model('estoque/lancamentos_model'); if (isset($_GET['term'])) { $q = strtolower($_GET['term']); $this->lancamentos_model->autoCompleteProduto($q); } }  
       
      na VIEW está assim:
      <div class="col-md-10"> <label for="idProdutos">Produto:</label> <input type="hidden" name="idProdutos" id="idProdutos"> <input type="text" class="form-control" id="descricao" name="descricao" style="font-size:15px; font-weight:bold;" placeholder="Pesquisar por descrição do produto" disabled> </div>  
      VIEW + JAVASCRIPT
       
      //Função para trazer os Dados pelo o AutoComplete. function resolveAutocomplete() { $("#descricao").autocomplete({ source: "<?php echo base_url(); ?>estoque/lancamentos/autoCompleteProduto/", minLength: 2, select: function (event, ui) { $("#idProdutos").val(ui.item.id); $("#cod_interno").val(ui.item.cod_interno); $("#descricao").val(ui.item.descricao); $("#prd_unid").val(ui.item.prd_unid); $("#estoque_atual").val(ui.item.estoque_atual); $("#qtde").focus(); } }); } // inicia o autocomplete resolveAutocomplete();  
      Grato,
       
      Cesar
×

Informação importante

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