Jump to content
Carlos Rocha

Gerar Javascript com JSON

Recommended Posts

Carlos Rocha

Tenho 2 Arrays:

Array
(
    [0] => Array
        (
            [0] => Amit
            [1] => amit@example.com
        )

    [1] => Array
        (
            [0] => Rahul
            [1] => rahul@example.com
        )

)

e

Array
(
    [0] => Array
        (
            [ProdutosidProduto] => 1
            [Produtostipo] => mp
            [Produtosmodelo] => F540 2 BAN.PNEU. 100 X 60
            [Produtosbandejas] => 2
            [Produtospeso] => 0
            [Produtosprensagem] => 0
            [ProdutosprecoUnitario] => 6500
            [Produtoscomprimento] => 100
            [Produtoslargura] => 60
            [Produtoscabo] => 0
            [Produtosligacao] => n
            [Produtospotencia] => 0
            [Produtosconsumo] => 0
            [Produtoscorrente] => 0
            [Produtosdisjuntor] => 0
            [Produtosdescricao] => 
Valor promocional limitado frete grátis ,para SP ,RJ ,MG ,ES. Os demais será cobrado apenas de SP para sua cidade ,valor de 500,00 ,a ser pago na entrega .

MAQUINA TOTALMENTE INDUSTRIAL E 100% NACIONAL .PRODUÇÃO DE ATÉ MIL PÇS POR DIA EM HORÁRIO NORMAL DE TRABALHO ,SISTEMA DIGITAL AUTOMATIZADO DE ÚLTIMA GERAÇÃO , SISTEMA PNEUMÁTICO COMPACTO E UNIFORME RECEBENDO A MESMA PRESSÃO EM TODA ÁREA DE ESTAMPAGEM, EVITANDO ASSIM OS SOMBREAMENTOS E EFEITOS FANTASMA NA ESTAMPA , SISTEMA DE RESISTÊNCIA DE ALTA QUALIDADE A MELHOR DO MERCADO AÇO INOX 304 , DANDO UMA VIDA ÚTIL MUITO SUPERIOR AS DEMAIS DO MERCADO , E FÁCIL TROCAS DAS RESISTÊNCIAS NÃO SENDO NECESSÁRIO TÉCNICO NO LOCAL , COM APENAS 4 PARAFUSOS O CLIENTE MESMO FAZ A TROCA, AS DEMAIS A RESISTÊNCIA É FUNDIDA NA CHAPA DE ALUMÍNIO SENDO IMPOSSÍVEL A TROCA APENAS DAS RESISTÊNCIAS , TEMOS TODAS AS PÇS DA PRENSA EM VALORES BEM ACESSÍVEIS. 
            [Produtosestoque] => 7
            [ProdutosfreteGratis] => s
            [Produtosbloqueado] => n
        )

    [1] => Array
        (
            [ProdutosidProduto] => 2
            [Produtostipo] => mp
            [Produtosmodelo] => F540 2 BAN.PNEU.80X100 A VISTA BOLETO PAGSEGURO
            [Produtosbandejas] => 2
            [Produtospeso] => 190
            [Produtosprensagem] => 300
            [ProdutosprecoUnitario] => 7500
            [Produtoscomprimento] => 70
            [Produtoslargura] => 100
            [Produtoscabo] => 6
            [Produtosligacao] => b
            [Produtospotencia] => 7500
            [Produtosconsumo] => 3
            [Produtoscorrente] => 35
            [Produtosdisjuntor] => 40
            [Produtosdescricao] => MAQUINA TOTALMENTE INDUSTRIAL E 100% NACIONAL .PRODUÇÃO DE ATÉ MIL PÇS POR DIA EM HORÁRIO NORMAL DE TRABALHO ,SISTEMA DIGITAL AUTOMATIZADO DE ÚLTIMA GERAÇÃO , SISTEMA PNEUMÁTICO COMPACTO E UNIFORME RECEBENDO A MESMA PRESSÃO EM TODA ÁREA DE ESTAMPAGEM, EVITANDO ASSIM OS SOMBREAMENTOS E EFEITOS FANTASMA NA ESTAMPA , SISTEMA DE RESISTÊNCIA DE ALTA QUALIDADE A MELHOR DO MERCADO AÇO INOX 304 , DANDO UMA VIDA ÚTIL MUITO SUPERIOR AS DEMAIS DO MERCADO , E FÁCIL TROCAS DAS RESISTÊNCIAS NÃO SENDO NECESSÁRIO TÉCNICO NO LOCAL , COM APENAS 4 PARAFUSOS O CLIENTE MESMO FAZ A TROCA, AS DEMAIS A RESISTÊNCIA É FUNDIDA NA CHAPA DE ALUMÍNIO SENDO IMPOSSÍVEL A TROCA APENAS DAS RESISTÊNCIAS , TEMOS TODAS AS PÇS DA PRENSA EM VALORES BEM ACESSÍVEIS. 
www.topuhrens.de


            [Produtosestoque] => 8
            [ProdutosfreteGratis] => n
            [Produtosbloqueado] => n
        )

    [2] => Array
        (
            [ProdutosidProduto] => 3
            [Produtostipo] => mp
            [Produtosmodelo] => (PROMOÇÃO )2 BAN.PNEU.80X100, VALOR PROMOCIONAL .
            [Produtosbandejas] => 2
            [Produtospeso] => 200
            [Produtosprensagem] => 300
            [ProdutosprecoUnitario] => 8990
            [Produtoscomprimento] => 80
            [Produtoslargura] => 100
            [Produtoscabo] => 6
            [Produtosligacao] => b
            [Produtospotencia] => 7500
            [Produtosconsumo] => 3
            [Produtoscorrente] => 35
            [Produtosdisjuntor] => 40
            [Produtosdescricao] => MAQUINA TOTALMENTE INDUSTRIAL E 100% NACIONAL .PRODUÇÃO DE ATÉ MIL PÇS POR DIA EM HORÁRIO NORMAL DE TRABALHO ,SISTEMA DIGITAL AUTOMATIZADO DE ÚLTIMA GERAÇÃO , SISTEMA PNEUMÁTICO COMPACTO E UNIFORME RECEBENDO A MESMA PRESSÃO EM TODA ÁREA DE ESTAMPAGEM, EVITANDO ASSIM OS SOMBREAMENTOS E EFEITOS FANTASMA NA ESTAMPA , SISTEMA DE RESISTÊNCIA DE ALTA QUALIDADE replica watches for sale A MELHOR DO MERCADO AÇO INOX 304 , DANDO UMA VIDA ÚTIL MUITO SUPERIOR AS DEMAIS DO MERCADO , E FÁCIL TROCAS DAS RESISTÊNCIAS NÃO SENDO NECESSÁRIO TÉCNICO NO LOCAL , COM APENAS 4 PARAFUSOS O CLIENTE MESMO FAZ A TROCA, AS DEMAIS A RESISTÊNCIA É FUNDIDA NA CHAPA DE ALUMÍNIO SENDO IMPOSSÍVEL A TROCA APENAS DAS RESISTÊNCIAS , TEMOS TODAS AS PÇS DA PRENSA EM VALORES BEM ACESSÍVEIS. 

CONSUMO : 3 KW/H 

            [Produtosestoque] => 97
            [ProdutosfreteGratis] => n
            [Produtosbloqueado] => n
        )

Desejo transformá-los em JSON porém respeitando seus índices.

Com o primeiro array fiz:

var arr = <?php echo json_encode($myArr); ?>;

com o segundo fiz 

var res = <?php echo json_encode($produtos); ?>;

Bom, quando fui conferir o JSON que saiu, verifiquei que 
Para o primeiro Array temos que:

   document.write(arr[1][0]) => imprimiu Rahul;

Para o segundo Array, temos que:

   document.write(res[0]["ProdutosidProduto"]) => Imprimiu undefined;

Mas quando fiz:

   document.write(res) => imprimiu [object Object],[object Object]

   
O que estou fazendo de errado?

Se os Arrays são quase idênticos, onde está o erro?

Será fato de que um tem índices como palavras e outro índices numéricos?

Edited by carcleo

Share this post


Link to post
Share on other sites
washalbano

Olá!
O primeiro array, gera apenas um json array com arrays
O segundo array gera um json array com objects
tente assim:
 

document.write(res[0].ProdutosidProduto)

 

Edited by washalbano

Share this post


Link to post
Share on other sites
Carlos Rocha

undefined

 

Alterado para:

 

<?php 

  require_once "../_controlls/_conexao/Conexao.php";
  require_once "../_controlls/_models/Produtos.php";
  require_once "../_controlls/_daos/ProdutosDao.php";
  
  $conection = new Conexao();
  $conexao = $conection->abreConexao();
  
  $produtosDao = new ProdutosDao($conexao);
  $todos = $produtosDao->pesquisaProdutos(); 

  $produtos = array();

  foreach ($todos as $cada):
	$produtos[] = (array) $cada;
  endforeach;
  
  print "<pre>";
  print_r($produtos);
  print "</pre>";  
  
?>

<script>
  var res =  Array(); 
  res = <?php echo json_encode($produtos); ?>;
  document.write(res[0].ProdutosidProduto)
</script>

 

Estou fazendo o seguinte:

Estou tendo um retorno de uma Query SQL. Com essa Query, monto um Array de objetos (sim, todos do mesmo tipo). pós isso, estou gerando em um foreach   

  $produtosDao = new ProdutosDao($conexao);
  $todos = $produtosDao->pesquisaProdutos(); 

  $produtos = array();

  foreach ($todos as $cada):
    $produtos[] = (array) $cada;
  endforeach;

um novo array com cada objeto convertido em Array (array) $cada.

Esse ´é o array que está na pergunta. Agora preciso transformá-lo em um JSon

Edited by carcleo

Share this post


Link to post
Share on other sites
Carlos Rocha

No caso vai ser preciso converter o array de objeto em array de arrays?

Estou fazendo como abaixo para converter:

  $produtosDao = new ProdutosDao($conexao);
  $todos = $produtosDao->pesquisaProdutos(); 

  $produtos = array();

  foreach ($todos as $cada):
    $produtos[] = (array)$cada;
  endforeach;

A saída PRINT_R está da forma abaixo:

Array
(
    [0] => Array
        (
            [ProdutosidProduto] => 1
            [Produtostipo] => mp
            [Produtosmodelo] => F540 2 BAN.PNEU. 100 X 60
            [Produtosbandejas] => 2
            [Produtospeso] => 0
            [Produtosprensagem] => 0
            [ProdutosprecoUnitario] => 6500
            [Produtoscomprimento] => 100
            [Produtoslargura] => 60
            [Produtoscabo] => 0
            [Produtosligacao] => n
            [Produtospotencia] => 0
            [Produtosconsumo] => 0
            [Produtoscorrente] => 0
            [Produtosdisjuntor] => 0
            [Produtosdescricao] => 
Valor promocional limitado frete grátis ,para SP ,RJ ,MG ,ES. Os demais será cobrado apenas de SP para sua cidade ,valor de 500,00 ,a ser pago na entrega .



MAQUINA TOTALMENTE INDUSTRIAL E 100% NACIONAL .PRODUÇÃO DE ATÉ MIL PÇS POR DIA EM HORÁRIO NORMAL DE TRABALHO ,SISTEMA DIGITAL AUTOMATIZADO DE ÚLTIMA GERAÇÃO , SISTEMA PNEUMÁTICO COMPACTO E UNIFORME RECEBENDO A MESMA PRESSÃO EM TODA ÁREA DE ESTAMPAGEM, EVITANDO ASSIM OS SOMBREAMENTOS E EFEITOS FANTASMA NA ESTAMPA , SISTEMA DE RESISTÊNCIA DE ALTA QUALIDADE A MELHOR DO MERCADO AÇO INOX 304 , DANDO UMA VIDA ÚTIL MUITO SUPERIOR AS DEMAIS DO MERCADO , E FÁCIL TROCAS DAS RESISTÊNCIAS NÃO SENDO NECESSÁRIO TÉCNICO NO LOCAL , COM APENAS 4 PARAFUSOS O CLIENTE MESMO FAZ A TROCA, AS DEMAIS A RESISTÊNCIA É FUNDIDA NA CHAPA DE ALUMÍNIO SENDO IMPOSSÍVEL A TROCA APENAS DAS RESISTÊNCIAS , TEMOS TODAS AS PÇS DA PRENSA EM VALORES BEM ACESSÍVEIS. 
            [Produtosestoque] => 7
            [ProdutosfreteGratis] => s
            [Produtosbloqueado] => n
        )

    [1] => Array
        (
            [ProdutosidProduto] => 2
            [Produtostipo] => mp
            [Produtosmodelo] => F540 2 BAN.PNEU.80X100 A VISTA BOLETO PAGSEGURO
            [Produtosbandejas] => 2
            [Produtospeso] => 190
            [Produtosprensagem] => 300
            [ProdutosprecoUnitario] => 7500
            [Produtoscomprimento] => 70
            [Produtoslargura] => 100
            [Produtoscabo] => 6
            [Produtosligacao] => b
            [Produtospotencia] => 7500
            [Produtosconsumo] => 3
            [Produtoscorrente] => 35
            [Produtosdisjuntor] => 40
            [Produtosdescricao] => MAQUINA TOTALMENTE INDUSTRIAL E 100% NACIONAL .PRODUÇÃO DE ATÉ MIL PÇS POR DIA EM HORÁRIO NORMAL DE TRABALHO ,SISTEMA DIGITAL AUTOMATIZADO DE ÚLTIMA GERAÇÃO , SISTEMA PNEUMÁTICO COMPACTO E UNIFORME RECEBENDO A MESMA PRESSÃO EM TODA ÁREA DE ESTAMPAGEM, EVITANDO ASSIM OS SOMBREAMENTOS E EFEITOS FANTASMA NA ESTAMPA , SISTEMA DE RESISTÊNCIA DE ALTA QUALIDADE A MELHOR DO MERCADO AÇO INOX 304 , DANDO UMA VIDA ÚTIL MUITO SUPERIOR AS DEMAIS DO MERCADO , E FÁCIL TROCAS DAS RESISTÊNCIAS NÃO SENDO NECESSÁRIO TÉCNICO NO LOCAL , COM APENAS 4 PARAFUSOS O CLIENTE MESMO FAZ A TROCA, AS DEMAIS A RESISTÊNCIA É FUNDIDA NA CHAPA DE ALUMÍNIO SENDO IMPOSSÍVEL A TROCA APENAS DAS RESISTÊNCIAS , TEMOS TODAS AS PÇS DA PRENSA EM VALORES BEM ACESSÍVEIS. 
www.topuhrens.de




            [Produtosestoque] => 8
            [ProdutosfreteGratis] => n
            [Produtosbloqueado] => n
        )

Mas os índices estão saindo assim

[ProdutosidProduto]

ao invés de assim'

ProdutosidProduto

'Como no teu.

Então, o JSON 

<script>
  var res =  Array(); 
  res = <?php echo json_encode($produtos); ?>;
  document.write(res[0].ProdutosidProduto)
</script>

dá 

undefined

como resultado

Onde estrou errando?

Edited by carcleo

Share this post


Link to post
Share on other sites
washalbano
12 hours ago, carcleo said:

No caso vai ser preciso converter o array de objeto em array de arrays? 

Não sr.
Apenas se muda a maneira como se acessa os índices.

Um json array de objects é coisa linda de Deus!

 

 

Talvez haja algum caractere especial em $produtos, que está invalidando seu json.

O sr. reparou se apareceu alguma mensagem de error no console do devtools?

Share this post


Link to post
Share on other sites
Carlos Rocha

Alterei

Tenho uma classe Produtos.

Dentro dela todos os atributos são `private`.

Dentro dela tenho a função abaixo:

      public function getArray($cada) {
           
           $produto = array(
               'idProduto' => $cada->getIdProduto(),
               'tipo' => $cada->getTipo(),
               'modelo' => $cada->getModelo(),
               'bandejas' => $cada->getBandejas(),
               'peso' => $cada->getPeso(),
               'prensagem' => $cada->getPrensagem(),
               'precoUnitario' => $cada->getPrecoUnitario(),
               'comprimento' => $cada->getComprimento(),
               'largura' => $cada->getLargura(),
               'cabo' => $cada->getCabo(),
               'ligacao' => $cada->getLigacao(),
               'potencia' => $cada->getPotencia(),
               'cosumo' => $cada->getConsumo(),
               'corrente' => $cada->getCorrente(),
               'disjuntor' => $cada->getDisjuntor(),
               'descricao' => $cada->getDescricao(),
               'estoque' => $cada->getEstoque(),
               'freteGratis' => $cada->getFreteGratis(),
               'bloqueado' => $cada->getBloqueado()
                  );
               
           return $produto;
           
      }  

Acontece que o 

    return $produto

está dando

    Notice: Undefined variable: produto in

O que está errado?

Share this post


Link to post
Share on other sites
washalbano

Bem estranho!

Deve ter algum caratere mágico(invisível) aí;

apague as duas ocorrências e escreva novamente o nome da variável $produto
e teste só pra ver

Share this post


Link to post
Share on other sites
Carlos Rocha

Fiz melhor: copiei para um bloco de notas, apaguei no arquivo, fechei e abri ele novamente.copiei do bloco de notas e colei: mesmo problema.

Então experimentei criei um atributo privado 

$produtos

E refiz a função:

  public function getArray($cada) {
       
       $this->produto = array(
           'idProduto' => $cada->getIdProduto(),
           'tipo' => $cada->getTipo(),
           'modelo' => $cada->getModelo(),
           'bandejas' => $cada->getBandejas(),
           'peso' => $cada->getPeso(),
           'prensagem' => $cada->getPrensagem(),
           'precoUnitario' => $cada->getPrecoUnitario(),
           'comprimento' => $cada->getComprimento(),
           'largura' => $cada->getLargura(),
           'cabo' => $cada->getCabo(),
           'ligacao' => $cada->getLigacao(),
           'potencia' => $cada->getPotencia(),
           'cosumo' => $cada->getConsumo(),
           'corrente' => $cada->getCorrente(),
           'disjuntor' => $cada->getDisjuntor(),
           'descricao' => $cada->getDescricao(),
           'estoque' => $cada->getEstoque(),
           'freteGratis' => $cada->getFreteGratis(),
           'bloqueado' => $cada->getBloqueado()
              );

       return $this->produto;
       
  } 

O array agora é populado, mas com valores vazios;

 

Eis a Classe:

<?php
 Class Produtos {
  
  private $idProduto; 
  private $tipo;  
  private $modelo;   
  private $bandejas;    
  private $peso;  
  private $prensagem;  
  private $precoUnitario;  
  private $comprimento;  
  private $largura;
  private $cabo;
  private $ligacao;  
  private $potencia;
  private $consumo;
  private $corrente;
  private $disjuntor;
  private $descricao;
  private $estoque;
  private $freteGratis;
  private $bloqueado;  
  private $produto;
  
  public function __construct (
      $_tipo,  
      $_modelo,   
      $_bandejas,    
      $_peso,  
      $_prensagem,
      $_precoUnitario,  
      $_comprimento,  
      $_largura,
      $_cabo,
      $_ligacao,  
      $_potencia,
      $_consumo,
      $_corrente,
      $_disjuntor,
      $_descricao,
      $_estoque,
      $_freteGratis,
      $_bloqueado
                     ) {
      $this->tipo =  $_tipo;
      $this->modelo = $_modelo;
      $this->bandejas = $_bandejas;
      $this->peso = $_peso;
      $this->prensagem = $_prensagem;
      $this->precoUnitario = $_precoUnitario;
      $this->comprimento = $_comprimento;
      $this->largura = $_largura;
      $this->cabo = $_cabo;
      $this->ligacao = $_ligacao;
      $this->potencia = $_potencia;
      $this->consumo = $_consumo;
      $this->corrente = $_corrente; 
      $this->disjuntor = $_disjuntor;
      $this->descricao = $_descricao;
      $this->estoque = $_estoque;
      $this->freteGratis = $_freteGratis;
      $this->bloqueado = $_bloqueado;
  }
  
  ////////////////////// SET'ERS  //////////////////  
  
  public function setIdProduto ($_idProduto) {
      $this->idProduto = $_idProduto;
  }
  
  public function getIdProduto(){
      return $this->idProduto;
  }
  
  public function getTipo () {
      return $this->tipo;
  }
  
  public function getModelo () {
      return $this->modelo;
  }
  
  public function getBandejas(){
      return $this->bandejas;
  }
  
  public function getPeso(){
      return $this->peso;
  } 
  
  public function getPrensagem(){
      return $this->prensagem;
  } 
  
  public function getPrecoUnitario(){
      return $this->precoUnitario;
  }  
  
  public function getComprimento(){
      return $this->comprimento;
  }
  
  public function getLargura(){
      return $this->largura;
  }
  
  public function getCabo(){
      return $this->cabo;
  }
  
  public function getLigacao(){
      return $this->ligacao;
  }
  
  public function getPotencia(){
      return $this->potencia;
  }
  
  public function getConsumo(){
      return $this->consumo;
  }
  
  public function getCorrente(){
      return $this->corrente;
  }
  
  public function getDisjuntor(){
      return $this->disjuntor;
  }
  
  public function getDescricao(){
      return $this->descricao;
  }
  
  public function getEstoque(){
      return $this->estoque;
  }
  
  public function getFreteGratis(){
      return $this->freteGratis;
  }
  
  public function getBloqueado(){
      return $this->bloqueado;
  }

  public function getArray($cada) {
       
       $this->produto = array(
           'idProduto' => $cada->getIdProduto(),
           'tipo' => $cada->getTipo(),
           'modelo' => $cada->getModelo(),
           'bandejas' => $cada->getBandejas(),
           'peso' => $cada->getPeso(),
           'prensagem' => $cada->getPrensagem(),
           'precoUnitario' => $cada->getPrecoUnitario(),
           'comprimento' => $cada->getComprimento(),
           'largura' => $cada->getLargura(),
           'cabo' => $cada->getCabo(),
           'ligacao' => $cada->getLigacao(),
           'potencia' => $cada->getPotencia(),
           'cosumo' => $cada->getConsumo(),
           'corrente' => $cada->getCorrente(),
           'disjuntor' => $cada->getDisjuntor(),
           'descricao' => $cada->getDescricao(),
           'estoque' => $cada->getEstoque(),
           'freteGratis' => $cada->getFreteGratis(),
           'bloqueado' => $cada->getBloqueado()
              );

       return $this->produto;
       
  }  

}

E o arquivo principal:

<?php 
  ini_set("display_errors",true);
  ini_set("display_startup_erros",1);
  error_reporting(E_ALL && E_NOTICE);
  error_reporting( E_ALL | E_STRICT ); // PHP 5.3
  error_reporting( E_ALL ); // Todas as outras versões 

  require_once "../_controlls/_conexao/Conexao.php";
  require_once "../_controlls/_models/Produtos.php";
  require_once "../_controlls/_daos/ProdutosDao.php";
  
  $conection = new Conexao();
  $conexao = $conection->abreConexao();
  
  $produtosDao = new ProdutosDao($conexao);
  $todos = $produtosDao->pesquisaProdutos(); 

  $produtos = array();
  
  foreach ($todos as $cada):
    $produtos[] = $cada->getArray($cada);
  endforeach;

  print "<pre>";
  print_r($produtos);
  print "</pre>";      
  
?>

<script>
  var res =  Array(); 
  res = <?php echo json_encode($produtos); ?>;
  document.write(res[0].ProdutosidProduto)
</script>

 

Edited by carcleo

Share this post


Link to post
Share on other sites
Carlos Rocha

Então, da forma abaixo o array gera corretamente:

  foreach ($todos as $cada):

     $produtos[] = array(
           'idProduto' => $cada->getIdProduto(),
           'tipo' => $cada->getTipo(),
           'modelo' => $cada->getModelo(),
           'bandejas' => $cada->getBandejas(),
           'peso' => $cada->getPeso(),
           'prensagem' => $cada->getPrensagem(),
           'precoUnitario' => $cada->getPrecoUnitario(),
           'comprimento' => $cada->getComprimento(),
           'largura' => $cada->getLargura(),
           'cabo' => $cada->getCabo(),
           'ligacao' => $cada->getLigacao(),
           'potencia' => $cada->getPotencia(),
           'cosumo' => $cada->getConsumo(),
           'corrente' => $cada->getCorrente(),
           'disjuntor' => $cada->getDisjuntor(),
           'descricao' => $cada->getDescricao(),
           'estoque' => $cada->getEstoque(),
           'freteGratis' => $cada->getFreteGratis(),
           'bloqueado' => $cada->getBloqueado()
              );    
           
  endforeach;

Mas o JSON só sai vazio

Share this post


Link to post
Share on other sites
Carlos Rocha

Situação mudou, acho que consegui.

Mas agora o problema é outro.

Tenho um array($todos) de objetos($cada)  e o seguinte foreach:

      foreach ($todos as $cada):
       
         $produto[] = (array) $cada;
    
         $produtos[] = array(
               'idProduto' => $cada->getIdProduto(),
               'tipo' => $cada->getTipo(),
               'modelo' => $cada->getModelo(),
               'bandejas' => $cada->getBandejas(),
               'peso' => $cada->getPeso(),
               'prensagem' => $cada->getPrensagem(),
               'precoUnitario' => $cada->getPrecoUnitario(),
               'comprimento' => $cada->getComprimento(),
               'largura' => $cada->getLargura(),
               'cabo' => $cada->getCabo(),
               'ligacao' => $cada->getLigacao(),
               'potencia' => $cada->getPotencia(),
               'cosumo' => $cada->getConsumo(),
               'corrente' => $cada->getCorrente(),
               'disjuntor' => $cada->getDisjuntor(),
               'descricao' => $cada->getDescricao(),
               'estoque' => $cada->getEstoque(),
               'freteGratis' => $cada->getFreteGratis(),
               'bloqueado' => $cada->getBloqueado()
                  );    
               
      endforeach;


Preciso converter os arrays $produto e $produtos em JSON

Segue os PRINT_R() de ambos.

Esse é o PRINT_R do `Array` $produto:

   

Array
    (
        [0] => Array
            (
                [ProdutosidProduto] => 1
                [Produtostipo] => mp
                [Produtosmodelo] => F540 2 BAN.PNEU. 100 X 60
                [Produtosbandejas] => 2
                [Produtospeso] => 0
                [Produtosprensagem] => 0
                [ProdutosprecoUnitario] => 6500
                [Produtoscomprimento] => 100
                [Produtoslargura] => 60
                [Produtoscabo] => 0
                [Produtosligacao] => n
                [Produtospotencia] => 0
                [Produtosconsumo] => 0
                [Produtoscorrente] => 0
                [Produtosdisjuntor] => 0
                [Produtosdescricao] => 
    Valor promocional limitado frete grátis ,para SP ,RJ ,MG ,ES. Os demais será cobrado apenas de SP para sua cidade ,valor de 500,00 ,a ser pago na entrega .
    
    
    
    MAQUINA TOTALMENTE INDUSTRIAL E 100% NACIONAL .PRODUÇÃO DE ATÉ MIL PÇS POR DIA EM HORÁRIO NORMAL DE TRABALHO ,SISTEMA DIGITAL AUTOMATIZADO DE ÚLTIMA GERAÇÃO , SISTEMA PNEUMÁTICO COMPACTO E UNIFORME RECEBENDO A MESMA PRESSÃO EM TODA ÁREA DE ESTAMPAGEM, EVITANDO ASSIM OS SOMBREAMENTOS E EFEITOS FANTASMA NA ESTAMPA , SISTEMA DE RESISTÊNCIA DE ALTA QUALIDADE A MELHOR DO MERCADO AÇO INOX 304 , DANDO UMA VIDA ÚTIL MUITO SUPERIOR AS DEMAIS DO MERCADO , E FÁCIL TROCAS DAS RESISTÊNCIAS NÃO SENDO NECESSÁRIO TÉCNICO NO LOCAL , COM APENAS 4 PARAFUSOS O CLIENTE MESMO FAZ A TROCA, AS DEMAIS A RESISTÊNCIA É FUNDIDA NA CHAPA DE ALUMÍNIO SENDO IMPOSSÍVEL A TROCA APENAS DAS RESISTÊNCIAS , TEMOS TODAS AS PÇS DA PRENSA EM VALORES BEM ACESSÍVEIS. 
                [Produtosestoque] => 7
                [ProdutosfreteGratis] => s
                [Produtosbloqueado] => n
            )
    
        [1] => Array
            (
                [ProdutosidProduto] => 2
                [Produtostipo] => mp
                [Produtosmodelo] => F540 2 BAN.PNEU.80X100 A VISTA BOLETO PAGSEGURO
                [Produtosbandejas] => 2
                [Produtospeso] => 190
                [Produtosprensagem] => 300
                [ProdutosprecoUnitario] => 7500
                [Produtoscomprimento] => 70
                [Produtoslargura] => 100
                [Produtoscabo] => 6
                [Produtosligacao] => b
                [Produtospotencia] => 7500
                [Produtosconsumo] => 3
                [Produtoscorrente] => 35
                [Produtosdisjuntor] => 40
                [Produtosdescricao] => MAQUINA TOTALMENTE INDUSTRIAL E 100% NACIONAL .PRODUÇÃO DE ATÉ MIL PÇS POR DIA EM HORÁRIO NORMAL DE TRABALHO ,SISTEMA DIGITAL AUTOMATIZADO DE ÚLTIMA GERAÇÃO , SISTEMA PNEUMÁTICO COMPACTO E UNIFORME RECEBENDO A MESMA PRESSÃO EM TODA ÁREA DE ESTAMPAGEM, EVITANDO ASSIM OS SOMBREAMENTOS E EFEITOS FANTASMA NA ESTAMPA , SISTEMA DE RESISTÊNCIA DE ALTA QUALIDADE A MELHOR DO MERCADO AÇO INOX 304 , DANDO UMA VIDA ÚTIL MUITO SUPERIOR AS DEMAIS DO MERCADO , E FÁCIL TROCAS DAS RESISTÊNCIAS NÃO SENDO NECESSÁRIO TÉCNICO NO LOCAL , COM APENAS 4 PARAFUSOS O CLIENTE MESMO FAZ A TROCA, AS DEMAIS A RESISTÊNCIA É FUNDIDA NA CHAPA DE ALUMÍNIO SENDO IMPOSSÍVEL A TROCA APENAS DAS RESISTÊNCIAS , TEMOS TODAS AS PÇS DA PRENSA EM VALORES BEM ACESSÍVEIS. 
    www.topuhrens.de
    
    
    
    
                [Produtosestoque] => 8
                [ProdutosfreteGratis] => n
                [Produtosbloqueado] => n
            )

Esse é o `PRINT_R` do `Array` $produtos:

    Array
    (
        [0] => Array
            (
                [idProduto] => 1
                [tipo] => mp
                [modelo] => F540 2 BAN.PNEU. 100 X 60
                [bandejas] => 2
                [peso] => 0
                [prensagem] => 0
                [precoUnitario] => 6500
                [comprimento] => 100
                [largura] => 60
                [cabo] => 0
                [ligacao] => n
                [potencia] => 0
                [cosumo] => 0
                [corrente] => 0
                [disjuntor] => 0
                [descricao] => 
    Valor promocional limitado frete grátis ,para SP ,RJ ,MG ,ES. Os demais será cobrado apenas de SP para sua cidade ,valor de 500,00 ,a ser pago na entrega .
    
    
    
    MAQUINA TOTALMENTE INDUSTRIAL E 100% NACIONAL .PRODUÇÃO DE ATÉ MIL PÇS POR DIA EM HORÁRIO NORMAL DE TRABALHO ,SISTEMA DIGITAL AUTOMATIZADO DE ÚLTIMA GERAÇÃO , SISTEMA PNEUMÁTICO COMPACTO E UNIFORME RECEBENDO A MESMA PRESSÃO EM TODA ÁREA DE ESTAMPAGEM, EVITANDO ASSIM OS SOMBREAMENTOS E EFEITOS FANTASMA NA ESTAMPA , SISTEMA DE RESISTÊNCIA DE ALTA QUALIDADE A MELHOR DO MERCADO AÇO INOX 304 , DANDO UMA VIDA ÚTIL MUITO SUPERIOR AS DEMAIS DO MERCADO , E FÁCIL TROCAS DAS RESISTÊNCIAS NÃO SENDO NECESSÁRIO TÉCNICO NO LOCAL , COM APENAS 4 PARAFUSOS O CLIENTE MESMO FAZ A TROCA, AS DEMAIS A RESISTÊNCIA É FUNDIDA NA CHAPA DE ALUMÍNIO SENDO IMPOSSÍVEL A TROCA APENAS DAS RESISTÊNCIAS , TEMOS TODAS AS PÇS DA PRENSA EM VALORES BEM ACESSÍVEIS. 
                [estoque] => 7
                [freteGratis] => s
                [bloqueado] => n
            )
    
        [1] => Array
            (
                [idProduto] => 2
                [tipo] => mp
                [modelo] => F540 2 BAN.PNEU.80X100 A VISTA BOLETO PAGSEGURO
                [bandejas] => 2
                [peso] => 190
                [prensagem] => 300
                [precoUnitario] => 7500
                [comprimento] => 70
                [largura] => 100
                [cabo] => 6
                [ligacao] => b
                [potencia] => 7500
                [cosumo] => 3
                [corrente] => 35
                [disjuntor] => 40
                [descricao] => MAQUINA TOTALMENTE INDUSTRIAL E 100% NACIONAL .PRODUÇÃO DE ATÉ MIL PÇS POR DIA EM HORÁRIO NORMAL DE TRABALHO ,SISTEMA DIGITAL AUTOMATIZADO DE ÚLTIMA GERAÇÃO , SISTEMA PNEUMÁTICO COMPACTO E UNIFORME RECEBENDO A MESMA PRESSÃO EM TODA ÁREA DE ESTAMPAGEM, EVITANDO ASSIM OS SOMBREAMENTOS E EFEITOS FANTASMA NA ESTAMPA , SISTEMA DE RESISTÊNCIA DE ALTA QUALIDADE A MELHOR DO MERCADO AÇO INOX 304 , DANDO UMA VIDA ÚTIL MUITO SUPERIOR AS DEMAIS DO MERCADO , E FÁCIL TROCAS DAS RESISTÊNCIAS NÃO SENDO NECESSÁRIO TÉCNICO NO LOCAL , COM APENAS 4 PARAFUSOS O CLIENTE MESMO FAZ A TROCA, AS DEMAIS A RESISTÊNCIA É FUNDIDA NA CHAPA DE ALUMÍNIO SENDO IMPOSSÍVEL A TROCA APENAS DAS RESISTÊNCIAS , TEMOS TODAS AS PÇS DA PRENSA EM VALORES BEM ACESSÍVEIS. 
    www.topuhrens.de
    
    
    
    
                [estoque] => 8
                [freteGratis] => n
                [bloqueado] => n
            )


Estou tentando assim

      var res1 =  Array(); 
      res1 = <?php echo json_encode($produto); ?>;
      document.write(res1[0]["ProdutosidProduto"])
    
      var res2 =  Array();
      res2 = <?php echo json_encode($produtos); ?>;
      document.write(res2[0]["idProduto"])  

no JS, o res2 sai perfeito. Mas o res1 sai undefined

Onde estou errando?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.