Ir para conteúdo

POWERED BY:

Arquivado

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

rafinha_sam

Como adicionar uma váriavel de PHP no JAVASCRIPT ?

Recommended Posts

Preciso jogar uma variável de Volume dentro de um Option ou seja, a pessoa seleciona uma categoria e conforme esta cat. aparece os itens da lista a frente dos itens preciso que mostre o volume, não estou conseguindo fazer com que este volume apareca na frente do titulo.

Variável em php ex: <?php echo $objProduto->volume ?>

<div class="col-sm-3">

                        <select name="id_produto_temp" class="form-control" id="id_produto_temp" onChange="changeUser(this.value);" required>
                            <option id="opcoes" value="">Produto </option>
                        </select>


                    </div>

< JAVA SCRIPT >

function processXML(obj)
{


 //pega a tag cliente
 var dataArray   = obj.getElementsByTagName("produto");


 //total de elementos contidos na tag cliente
 if(dataArray.length > 0)
 {
//percorre o arquivo XML paara extrair os dados
for(var i = 0 ; i < dataArray.length ; i++)
{
var item = dataArray[i];
//contéudo dos campos no arquivo XML
var codigo    =  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;




idOpcao.innerHTML = "Selecione um produto abaixo";


//AQUI PRECISO JOGAR A VARIAVEL VOLUME NA FRENTE DE DESCRIÇÃO, OBS: JA TENTEI COLOCAR novo.text = descricao + volume só que aparece um 3 na frente de todos os textos


var novo = document.createElement("option");
//atribui um ID a esse elemento
novo.setAttribute("id", "opcoes");
//atribui um valor 
novo.value = codigo;
//atribui um texto
novo.text  = descricao;






//finalmente adiciona o novo elemento
document.frmPedidoProduto.id_produto_temp.options.add(novo);
}
 }
 else
 {
//caso o XML volte vazio, imprime a mensagem abaixo
idOpcao.innerHTML = "Nenhuma familia relacionada";
 } 
}



POR FAVOR ME AJUDEM, AGRADEÇO DESDE JÁ, OBRIGADO.

Compartilhar este post


Link para o post
Compartilhar em outros sites
var varJavaScript = <?= $varPhp ?>;

Caso for uma string, adicione apóstrofos:

var varJavaScript = '<?= $varPhp ?>';

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Gabriel, nada resolvido, onde devo colocar ? Estou fazendo assim:

function processXML(obj)
{


 //pega a tag cliente
 var dataArray   = obj.getElementsByTagName("produto");


 //total de elementos contidos na tag cliente
 if(dataArray.length > 0)
 {

 //percorre o arquivo XML paara extrair os dados
for(var i = 0 ; i < dataArray.length ; i++)
{
var item = dataArray[i];
//contéudo dos campos no arquivo XML
var codigo    =  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
var volume = <?= $objProduto->volume; ?>;
idOpcao.innerHTML = "Selecione um produto abaixo";


//cria um novo option dinamicamente  
var novo = document.createElement("option");
var volume = <?= $objProduto->volume; ?>;
//atribui um ID a esse elemento
novo.setAttribute("id", "opcoes");
//atribui um valor 
novo.value = codigo;
//atribui um texto
novo.text  = descricao + volume;







//finalmente adiciona o novo elemento
document.frmPedidoProduto.id_produto_temp.options.add(novo);
}
 }
 else
 {
//caso o XML volte vazio, imprime a mensagem abaixo
idOpcao.innerHTML = "Nenhuma familia relacionada";
 } 
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aonde você deve colocar é você quem deve dizer. Qual é o retorno obtido no seu código? A variável não está recebendo o valor adequado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gabriel, deveria ficar na frente da descrição, pois pegara a descrição do produto e o volume a frente da descrição exemplo:

Como deve ficar:

TANQUE - 2.000 L

Como está ficando:

TANQUE - L
O valor da variável não está recendo valor nenhum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então a sua variável não possui valor algum. Verifique se está vindo corretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na parte de cima (HTML/PHP ) Estou usando da mesma forma basicamente e está vindo normal, como mostra o exemplo abaixo.

   <tbody>
                  <?php
  foreach($resp_item as $reg_item)
{
$objProduto = new Produto();
$objProduto->id_produto = $reg_item[id_produto];
$objProduto->consultar();


$somatoria = bcadd($somatoria, $reg_item[va_total], 2);


$quantidade = number_format($reg_item[nu_quantidade]);
$quantidade = str_replace(",", ".", $quantidade);
 ?>
                    <tr>
                      <td><?php echo Categoria::pega_categoria($objProduto->id_categoria ); ?></td>
                      <td><?php echo $objProduto->titulo;?>
  
            
<?php 
 if($reg_des_prod[tp_categoria] != 1)
              {
                if(!empty($objProduto->volume)) 
                {


                  echo " - ".$objProduto->volume." L";
                }
              }
             ?></td>


                      <td><?php echo $objProduto->codigo; ?></td>
                      <td><?php echo $quantidade; ?></td>
                      <td><?php if($reg_item[va_preco] != "0"){ formata_valor(str_replace(".", "", $reg_item[va_preco])); echo "R$ ".$valor; } ?></td>
                      <td><?php if($reg_item[va_total] != "0"){ formata_valor(str_replace(".", "", $reg_item[va_total])); echo "R$ ".$valor; } ?></td>
                      <td><a href="#" onClick="removerPedidoProduto('<?php echo $reg_item[id_pedido_produto]; ?>', '<?php echo $reg_item[id_pedido]; ?>', '<?php echo $objPedido->id_cliente; ?>')" class="btn btn-danger btn-xs" aria-hidden="true"><i class="glyphicon glyphicon-remove"></i></a></td>
                    </tr>
                  <?php
                    }
 ?>
                  </tbody>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual é a sua saída HTML no trecho da impressão da variável?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pagina de cadastro do produto, e o form para cadastrar o valor do volume.

<div class="form-group">
                <label class="col-sm-2 control-label" for="volume">Volume</label>
                <div class="col-sm-2">
                    <input name="volume" type="text" id="volume" class="form-control" value="<?php echo $objProduto->volume; ?>" placeholder="Volume"/>
                </div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu quero saber a saída HTML (aquilo que aparece no navegador apertando CTRL + U) na parte do javascript aonde você quer imprimir a variável.

Aproveite e olhe se não há algum erro de javascript (CTRL + Shift + J ou no FireBug).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Gabriel, se eu coloco com ' apóstrofos ' ele não da error nenhum e não imprimi nenhum valor de volume.

for(var i = 0 ; i < dataArray.length ; i++)
{
var item = dataArray[i];
//contéudo dos campos no arquivo XML
var codigo = item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
var descricao = item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
var volume = '';
idOpcao.innerHTML = "Selecione um produto abaixo";


//cria um novo option dinamicamente
var novo = document.createElement("option");
//atribui um ID a esse elemento
novo.setAttribute("id", "opcoes");
//atribui um valor
novo.value = codigo;
//atribui um texto
novo.text = descricao + volume;




//finalmente adiciona o novo elemento
document.frmPedidoProduto.id_produto_temp.options.add(novo);
}

Veja que

var volume = '';

Esta assim, sendo que:

var volume = '<?=  $objProduto->volume ?>';

Se eu deixo a variável em PHP como um valor sem ' apóstrofos ' ele me da os seguintes erros:

pedido-cadastrar.php?id_pedido=22:321 Uncaught SyntaxError: Unexpected token ;
pedido-cadastrar.php?id_pedido=22:117 Uncaught ReferenceError: Dados is not definedonchange @ pedido-cadastrar.php?id_pedido=22:117

Compartilhar este post


Link para o post
Compartilhar em outros sites

Preciso ver o output do HTML, pois até agora, só tenho suposições.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo desculpe, mas não entendo o que seria o "Output" ?

Eu entendi que você queira visualizar o input do HTML certo ? :

<form name="frmPedidoProduto" class="form-horizontal" action="pedido-cadastrar.php" method="post" enctype="multipart/form-data">
                <div class="form-group">
                    <div class="col-sm-2">
                        <select name="id_categoria" class="form-control" id="id_categoria" onChange="Dados(this.value);">
                            <option>Categoria</option>
                            <?php
                                $objCategoria = new Categoria();
                                
                                $resp_cat = $objCategoria->exibir_total(NULL);
                                        
                                foreach($resp_cat as $reg_cat)
                                {
                                    echo "<option value=\"".$reg_cat[id_categoria]."\"";
                                    if($objPedido->id_categoria == $reg_cat[id_categoria])
                                    {
                                        echo " selected=\"selected\"";
                                    }
                                    echo ">".mb_strtoupper($reg_cat[de_categoria])."</option>\n";
                                }
                            ?>
                        </select>
                    </div>
                    <div class="col-sm-3">
                        <select name="id_produto_temp" class="form-control" id="id_produto_temp" onChange="changeUser(this.value);" required>
                            <option id="opcoes" value="">Produto </option>


                        </select>


                    </div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Output do HTML é o código fonte que é enviado para o browser. Você vai lá no browser e apert CTRL + U (na maioria é assim). Eu só quero do trecho do código javascript que não está funcionado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou te passar o JS completo do Ctrl + U :

<script type="text/javascript">


function confere(valor)
{
if(valor == 'OUTRA')
{
$("#transporte_outro").css("display", "block");
$("#transporte_outro_txt").css("display", "block");
}
else
{
$("#transporte_outro").css("display", "none");
$("#transporte_outro_txt").css("display", "none");
}
}


function conferePgto(valor)
{
if(valor == 'OUTRO')
{
$("#pagamento_outro").css("display", "block");
$("#pagamento_txt").css("display", "block");
}
else
{
$("#pagamento_outro").css("display", "none");
$("#pagamento_txt").css("display", "none");
}
}


function removerPedidoProduto(id_pedido_produto, id_pedido, id_cliente)
{
if(confirm("Deseja realmente remover este produto?"))
{
location.href='pedido-remover-produto.php?id_pedido_produto='+id_pedido_produto+'&id_pedido='+id_pedido+'&id_cliente='+id_cliente;
}
}


function Dados(valor)
{
//verifica se o browser tem suporte a ajax
try
{
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
try
{
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(ex)
{
try
{
ajax = new XMLHttpRequest();
}
catch(exc)
{
alert("Esse browser não tem recursos para uso do Ajax");
ajax = null;
}
}
}
//se tiver suporte ajax
if(ajax)
{
//deixa apenas o elemento 1 no option, os outros são excluídos
document.frmPedidoProduto.id_produto_temp.options.length = 1;


idOpcao = document.getElementById("opcoes");


ajax.open("POST", "inc/produtos.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");


ajax.onreadystatechange = function()
{
//enquanto estiver processando...emite a msg de carregando
if(ajax.readyState == 1)
{
idOpcao.innerHTML = "Carregando...!";
}
//após ser processado - chama função processXML que vai varrer os dados
if(ajax.readyState == 4)
{
if(ajax.responseXML)
{
processXML(ajax.responseXML);
}
else
{
//caso não seja um arquivo XML emite a mensagem abaixo
idOpcao.innerHTML = "Nenhum produto relacionado";
}
}
}
//passa o código do estado escolhido
var params = "id_categoria="+valor;
ajax.send(params);
}
}


function changeUser(valor)
{
document.frmPedidoProduto.id_produto.value = document.frmPedidoProduto.id_produto_temp.value;
}


function processXML(obj)
{


//pega a tag cliente
var dataArray = obj.getElementsByTagName("produto");


//total de elementos contidos na tag cliente
if(dataArray.length > 0)
{
//percorre o arquivo XML paara extrair os dados
for(var i = 0 ; i < dataArray.length ; i++)
{
var item = dataArray[i];
//contéudo dos campos no arquivo XML
var codigo = item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
var descricao = item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
var volume = '';
idOpcao.innerHTML = "Selecione um produto abaixo";


//cria um novo option dinamicamente
var novo = document.createElement("option");
//atribui um ID a esse elemento
novo.setAttribute("id", "opcoes");
//atribui um valor
novo.value = codigo;
//atribui um texto
novo.text = descricao + volume;




//finalmente adiciona o novo elemento
document.frmPedidoProduto.id_produto_temp.options.add(novo);
}
}
else
{
//caso o XML volte vazio, imprime a mensagem abaixo
idOpcao.innerHTML = "Nenhuma familia relacionada";
}
}


function DadosValor(valor, valor2)
{
//verifica se o browser tem suporte a ajaxValor
try
{
ajaxValor = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
try
{
ajaxValor = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(ex)
{
try
{
ajaxValor = new XMLHttpRequest();
}
catch(exc)
{
alert("Esse browser não tem recursos para uso do Ajax");
ajaxValor = null;
}
}
}
//se tiver suporte ajaxValor
if(ajaxValor)
{
//deixa apenas o elemento 1 no value, os outros são excluídos
document.frmPedidoProduto.valor_produto.value.length = 1;


idOpcaoValor = document.getElementById("valor_produto");
// idOpcaoReciboItem = document.getElementById("valor_item");


ajaxValor.open("POST", "inc/valor.php", true);
ajaxValor.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");


ajaxValor.onreadystatechange = function()
{
//enquanto estiver processando...emite a msg de carregando
if(ajaxValor.readyState == 1)
{
idOpcaoValor.value = "Carregando...!";
}


//após ser processado - chama função processXMLValor que vai varrer os dados
if(ajaxValor.readyState == 4)
{
if(ajaxValor.responseXML)
{
processXMLValor(ajaxValor.responseXML);
}
else
{
//caso não seja um arquivo XML emite a mensagem abaixo
idOpcaoValor.value = "";
}
}
}


//passa o código do estado escolhido
var params = "id_produto="+valor+"&condicao="+valor2;
ajaxValor.send(params);
}
}


function processXMLValor(obj)
{
var elemento = obj.getElementsByTagName("preco");


//total de elementos contidos na tag categoria
if(elemento.length > 0)
{
//contéudo dos campos no arquivo XML
var codigo = elemento[0].getElementsByTagName("codigo")[0].firstChild.nodeValue;
var descricao = elemento[0].getElementsByTagName("descricao")[0].firstChild.nodeValue;
var volume = '';
idOpcaoValor.value = descricao;
//idOpcaoReciboItem.value = codigo;
}
else
{
//caso o XML volte vazio, imprime a mensagem abaixo
idOpcaoValor.value = "";
}
}
</script>

Outro detalhe, se eu adicionar um produto no pedido com o valor do volume de 50 L, e for adicionar outro produto, todos os produtos ficam o valor de 50 L ao invés de aparecer o valor do que está na lista.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código que você desenvolveu, não corresponde ao que está indo para o navegador, veja:

Esse é o código que você colocou a variável para imprimir:

//cria um novo option dinamicamente  
var novo = document.createElement("option");
var volume = <?= $objProduto->volume; ?>;
//atribui um ID a esse elemento
novo.setAttribute("id", "opcoes");
//atribui um valor 
novo.value = codigo;
//atribui um texto
novo.text  = descricao + volume;

O código abaixo é o que tem no seu navegador.

//cria um novo option dinamicamente
var novo = document.createElement("option");
//atribui um ID a esse elemento
novo.setAttribute("id", "opcoes");
//atribui um valor
novo.value = codigo;
//atribui um texto
novo.text = descricao + volume;

Está faltando uma linha nele...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja bem, eu estou fazendo desta seguinte forma, para que quando pega o volume os produtos que não tirem o valor volume preenchido não aparecerem o volume:

ESTOU USANDO:

function confere(valor)
{
if(valor == 'OUTRA')
{
$("#transporte_outro").css("display", "block");
$("#transporte_outro_txt").css("display", "block");
}
else
{
$("#transporte_outro").css("display", "none");
$("#transporte_outro_txt").css("display", "none");
}
}


function conferePgto(valor)
{
if(valor == 'OUTRO')
{
$("#pagamento_outro").css("display", "block");
$("#pagamento_txt").css("display", "block");
}
else
{
$("#pagamento_outro").css("display", "none");
$("#pagamento_txt").css("display", "none");
}
}


function removerPedidoProduto(id_pedido_produto, id_pedido, id_cliente)
{
if(confirm("Deseja realmente remover este produto?"))
{
location.href='pedido-remover-produto.php?id_pedido_produto='+id_pedido_produto+'&id_pedido='+id_pedido+'&id_cliente='+id_cliente;
}
}


function Dados(valor)
{
 //verifica se o browser tem suporte a ajax
 try
 {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
 } 
 catch(e)
 {
try
{
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(ex)
{
try
{
  ajax = new XMLHttpRequest();
}
catch(exc)
{
  alert("Esse browser não tem recursos para uso do Ajax");
  ajax = null;
}
}
 }
 //se tiver suporte ajax
 if(ajax)
 {
//deixa apenas o elemento 1 no option, os outros são excluídos
document.frmPedidoProduto.id_produto_temp.options.length = 1;


idOpcao  = document.getElementById("opcoes");


ajax.open("POST", "inc/produtos.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");


ajax.onreadystatechange = function()
{
//enquanto estiver processando...emite a msg de carregando
if(ajax.readyState == 1)
{
  idOpcao.innerHTML = "Carregando...!";   
}
//após ser processado - chama função processXML que vai varrer os dados
if(ajax.readyState == 4)
{
  if(ajax.responseXML)
  {
 processXML(ajax.responseXML);
  }
  else
  {
  //caso não seja um arquivo XML emite a mensagem abaixo
  idOpcao.innerHTML = "Nenhum produto relacionado";
  }
}
}
//passa o código do estado escolhido
var params = "id_categoria="+valor;
ajax.send(params);
 }
}


function changeUser(valor)
{
document.frmPedidoProduto.id_produto.value = document.frmPedidoProduto.id_produto_temp.value;
}


function processXML(obj)
{


 //pega a tag cliente
 var dataArray   = obj.getElementsByTagName("produto");


 //total de elementos contidos na tag cliente
 if(dataArray.length > 0)
 {
//percorre o arquivo XML paara extrair os dados
for(var i = 0 ; i < dataArray.length ; i++)
{
var item = dataArray[i];
//contéudo dos campos no arquivo XML
var codigo    =  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
var volume =  '<?php 
 if($reg_des_prod[tp_categoria] != 1)
              {
                if(!empty($objProduto->volume)) 
                {


                  echo " - ".$objProduto->volume." L";
                }
              }
             ?>';
idOpcao.innerHTML = "Selecione um produto abaixo";


//cria um novo option dinamicamente  
var novo = document.createElement("option");
//atribui um ID a esse elemento
novo.setAttribute("id", "opcoes");
//atribui um valor 
novo.value = codigo;
//atribui um texto
novo.text  = descricao + volume;




//finalmente adiciona o novo elemento
document.frmPedidoProduto.id_produto_temp.options.add(novo);
}
 }
 else
 {
//caso o XML volte vazio, imprime a mensagem abaixo
idOpcao.innerHTML = "Nenhuma familia relacionada";
 } 
}


function DadosValor(valor, valor2)
{
 //verifica se o browser tem suporte a ajaxValor
 try
 {
ajaxValor = new ActiveXObject("Microsoft.XMLHTTP");
 } 
 catch(e)
 {
try
{
ajaxValor = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(ex)
{
try
{
  ajaxValor = new XMLHttpRequest();
}
catch(exc)
{
  alert("Esse browser não tem recursos para uso do Ajax");
  ajaxValor = null;
}
}
 }
 //se tiver suporte ajaxValor
 if(ajaxValor)
 {
//deixa apenas o elemento 1 no value, os outros são excluídos
document.frmPedidoProduto.valor_produto.value.length = 1;


idOpcaoValor  = document.getElementById("valor_produto");
// idOpcaoReciboItem  = document.getElementById("valor_item");


ajaxValor.open("POST", "inc/valor.php", true);
ajaxValor.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");


ajaxValor.onreadystatechange = function()
{
//enquanto estiver processando...emite a msg de carregando
if(ajaxValor.readyState == 1)
{
  idOpcaoValor.value = "Carregando...!";   
}


//após ser processado - chama função processXMLValor que vai varrer os dados
if(ajaxValor.readyState == 4)
{
  if(ajaxValor.responseXML)
  {
processXMLValor(ajaxValor.responseXML);
  }
  else
  {
  //caso não seja um arquivo XML emite a mensagem abaixo
  idOpcaoValor.value = "";
  }
}
}


//passa o código do estado escolhido
var params = "id_produto="+valor+"&condicao="+valor2;
ajaxValor.send(params);
 }
}
  
function processXMLValor(obj)
{
var elemento = obj.getElementsByTagName("preco");


//total de elementos contidos na tag categoria
if(elemento.length > 0)
{
//contéudo dos campos no arquivo XML
var codigo    =  elemento[0].getElementsByTagName("codigo")[0].firstChild.nodeValue;
var descricao =  elemento[0].getElementsByTagName("descricao")[0].firstChild.nodeValue;
var volume =  '<?php 
 if($reg_des_prod[tp_categoria] != 1)
              {
                if(!empty($objProduto->volume)) 
                {


                  echo " - ".$objProduto->volume." L";
                }
              }
             ?>';
idOpcaoValor.value = descricao;
//idOpcaoReciboItem.value = codigo;
}
else
{
//caso o XML volte vazio, imprime a mensagem abaixo
idOpcaoValor.value = "";
} 
}

ESTÁ SAINDO:

function confere(valor)
{
if(valor == 'OUTRA')
{
$("#transporte_outro").css("display", "block");
$("#transporte_outro_txt").css("display", "block");
}
else
{
$("#transporte_outro").css("display", "none");
$("#transporte_outro_txt").css("display", "none");
}
}


function conferePgto(valor)
{
if(valor == 'OUTRO')
{
$("#pagamento_outro").css("display", "block");
$("#pagamento_txt").css("display", "block");
}
else
{
$("#pagamento_outro").css("display", "none");
$("#pagamento_txt").css("display", "none");
}
}


function removerPedidoProduto(id_pedido_produto, id_pedido, id_cliente)
{
if(confirm("Deseja realmente remover este produto?"))
{
location.href='pedido-remover-produto.php?id_pedido_produto='+id_pedido_produto+'&id_pedido='+id_pedido+'&id_cliente='+id_cliente;
}
}


function Dados(valor)
{
//verifica se o browser tem suporte a ajax
try
{
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
try
{
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(ex)
{
try
{
ajax = new XMLHttpRequest();
}
catch(exc)
{
alert("Esse browser não tem recursos para uso do Ajax");
ajax = null;
}
}
}
//se tiver suporte ajax
if(ajax)
{
//deixa apenas o elemento 1 no option, os outros são excluídos
document.frmPedidoProduto.id_produto_temp.options.length = 1;


idOpcao = document.getElementById("opcoes");


ajax.open("POST", "inc/produtos.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");


ajax.onreadystatechange = function()
{
//enquanto estiver processando...emite a msg de carregando
if(ajax.readyState == 1)
{
idOpcao.innerHTML = "Carregando...!";
}
//após ser processado - chama função processXML que vai varrer os dados
if(ajax.readyState == 4)
{
if(ajax.responseXML)
{
processXML(ajax.responseXML);
}
else
{
//caso não seja um arquivo XML emite a mensagem abaixo
idOpcao.innerHTML = "Nenhum produto relacionado";
}
}
}
//passa o código do estado escolhido
var params = "id_categoria="+valor;
ajax.send(params);
}
}


function changeUser(valor)
{
document.frmPedidoProduto.id_produto.value = document.frmPedidoProduto.id_produto_temp.value;
}


function processXML(obj)
{


//pega a tag cliente
var dataArray = obj.getElementsByTagName("produto");


//total de elementos contidos na tag cliente
if(dataArray.length > 0)
{
//percorre o arquivo XML paara extrair os dados
for(var i = 0 ; i < dataArray.length ; i++)
{
var item = dataArray[i];
//contéudo dos campos no arquivo XML
var codigo = item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
var descricao = item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
var volume = '';
idOpcao.innerHTML = "Selecione um produto abaixo";


//cria um novo option dinamicamente
var novo = document.createElement("option");
//atribui um ID a esse elemento
novo.setAttribute("id", "opcoes");
//atribui um valor
novo.value = codigo;
//atribui um texto
novo.text = descricao + volume;




//finalmente adiciona o novo elemento
document.frmPedidoProduto.id_produto_temp.options.add(novo);
}
}
else
{
//caso o XML volte vazio, imprime a mensagem abaixo
idOpcao.innerHTML = "Nenhuma familia relacionada";
}
}


function DadosValor(valor, valor2)
{
//verifica se o browser tem suporte a ajaxValor
try
{
ajaxValor = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
try
{
ajaxValor = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(ex)
{
try
{
ajaxValor = new XMLHttpRequest();
}
catch(exc)
{
alert("Esse browser não tem recursos para uso do Ajax");
ajaxValor = null;
}
}
}
//se tiver suporte ajaxValor
if(ajaxValor)
{
//deixa apenas o elemento 1 no value, os outros são excluídos
document.frmPedidoProduto.valor_produto.value.length = 1;


idOpcaoValor = document.getElementById("valor_produto");
// idOpcaoReciboItem = document.getElementById("valor_item");


ajaxValor.open("POST", "inc/valor.php", true);
ajaxValor.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");


ajaxValor.onreadystatechange = function()
{
//enquanto estiver processando...emite a msg de carregando
if(ajaxValor.readyState == 1)
{
idOpcaoValor.value = "Carregando...!";
}


//após ser processado - chama função processXMLValor que vai varrer os dados
if(ajaxValor.readyState == 4)
{
if(ajaxValor.responseXML)
{
processXMLValor(ajaxValor.responseXML);
}
else
{
//caso não seja um arquivo XML emite a mensagem abaixo
idOpcaoValor.value = "";
}
}
}


//passa o código do estado escolhido
var params = "id_produto="+valor+"&condicao="+valor2;
ajaxValor.send(params);
}
}


function processXMLValor(obj)
{
var elemento = obj.getElementsByTagName("preco");


//total de elementos contidos na tag categoria
if(elemento.length > 0)
{
//contéudo dos campos no arquivo XML
var codigo = elemento[0].getElementsByTagName("codigo")[0].firstChild.nodeValue;
var descricao = elemento[0].getElementsByTagName("descricao")[0].firstChild.nodeValue;
var volume = '';
idOpcaoValor.value = descricao;
//idOpcaoReciboItem.value = codigo;
}
else
{
//caso o XML volte vazio, imprime a mensagem abaixo
idOpcaoValor.value = "";
}
}

AJUDE-ME POR FAVOR, AGRADEÇO DESDE JÁ OBRIGADO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o código abaixo não exibe nada, há algo de errado com o seu código.

<?php 
if($reg_des_prod[tp_categoria] != 1)
{
    if(!empty($objProduto->volume)) 
    {
        echo " - ".$objProduto->volume." L";
    }
}
?>

Entretanto, por mim, esse código é intestável, pois depende exclusivamente do seu ambiente.

Faço o seguinte, adicione os seguintes códigos abaixo, antes do código acima:

var_dump($reg_des_prod);
var_dump($objProduto);

Poste somente o que sair do código acima (postar muito código só atrapalha).

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.