Jump to content
lucascatani

Consulta Jquery com 2 parâmetros e retorno em JSON

Recommended Posts

Boa tarde. Preciso de uma ajuda, estou tentando carregar um somatório de uma base de dados mysql utilizando jquery.
selects_ajax.png

Esse é o arquivo cadastroretirada.php que tem a tela:

<?php
session_start();
if (!isset($_SESSION['login_session']) && !isset($_SESSION['senha_session']))
{
	echo "<script>alert('Para acessar tarefas administrativas use a tela de login!'); window.location=\"../index.html\"</script>";	
	exit;	
}
else
{
$session_login = $_SESSION['login_session'];
$session_senha = $_SESSION['senha_session'];
}
require_once('../config/config.php');
/*Nome do Usuário Logado*/
$loginusuario = $_SESSION['login_session'];
$sqlusuario = mysql_query("SELECT idusuario,nomeusuario FROM usuarios WHERE loginusuario = '$loginusuario';");
while($resultusuario = mysql_fetch_assoc($sqlusuario))
{
	$nomeusuario1 = $resultusuario['nomeusuario'];
	$idusuario1 = $resultusuario['idusuario'];
}
?>
<!DOCTYPE html>
<html dir="ltr" lang="en-US"><head><!-- Created by Artisteer v4.1.0.59861 -->
    <meta charset="iso-8859-1">
    <title>Área Administativa - Cadastro de produtos em uso</title>
    <meta name="viewport" content="initial-scale = 1.0, maximum-scale = 1.0, user-scalable = no, width = device-width">

    <!--[if lt IE 9]><script src="https://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
    <link rel="stylesheet" href="../style.css" media="screen">
    <!--[if lte IE 7]><link rel="stylesheet" href="style.ie7.css" media="screen" /><![endif]-->
    <link rel="stylesheet" href="../style.responsive.css" media="all">
    
    <link type="text/css" href="../js/chosen151/chosen.css" rel="stylesheet" />
    
    <link type="text/css" href="../css/smoothness/jquery-ui-1.10.3.custom.css" rel="stylesheet" />

<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
    <script src="../jquery.js"></script>
    <script src="../script.js"></script>
    <script src="../script.responsive.js"></script>
    
    <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
  	<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
	<script src="../js/chosen151/chosen.jquery.min.js"></script> 

<style>.l9-content .l9-postcontent-0 .layout-item-0 { padding-right: 10px;padding-left: 10px;  }
.ie7 .l9-post .l9-layout-cell {border:none !important; padding:0 !important; }
.ie6 .l9-post .l9-layout-cell {border:none !important; padding:0 !important; }

</style>

<script src="../js/jquery.maskMoney.min.js"></script>
<script src="../js/jquery.validate.min.js"></script>
<script>	

$(function(){
	 jQuery.validator.setDefaults({
	 debug: false,
	 success: "valid"
	});
	
$("#txtDataCompra").datepicker({
    dateFormat: 'dd/mm/yy',
    dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'],
    dayNamesMin: ['D','S','T','Q','Q','S','S','D'],
    dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','---','Sáb'],
    monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
    monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'],
    nextText: 'Próximo',
    prevText: 'Anterior'
}).datepicker('setDate', '+0');
        
			   $("#formgravaentrada").validate({
                    debug: false,
					ignore: "",					
                    rules: 					
					{                       
						txtDataCompra: {
						required: true,
						date: true																			
						},
						cbxNomeProduto: {
						required: true																			
						},
						txtQuantidade: {
							required: true,
							digits: true							
						},
						txtValor: {
							required: true,
							number: true							
						},							 					   
					    txtFornecedor: {
							required: true							
						},
						txtLote: {
							required: true
						},	
						txtNumeroNf: {
							required: true
						},										 					   
                    },
                    messages: {
                        txtDataCompra: {
						required: "O campo data é obrigatório!",
						date: "Digite uma data válida."																			
						},
						cbxNomeProduto: {
							required: "Selecione o produto!"							
						},
						 txtQuantidade: {
							required: "O campo Quantidade é obrigatório!",
							digits: "Digite somente números."							
						},
						txtValor: {
							required: "O campo Valor é obrigatório!",
							number: "Digite somente números."							
						},
						txtFornecedor: {
							required: "O campo Fornecedor é obrigatório!"							
						},	
						txtLote: {
							required: "O campo Lote é obrigatório!"							
						},
						txtNumeroNf: {
							required: "O campo Número da Nf é obrigatório!"							
						},							  											   
                   }
               });			 
           });
</script>

<script>
$(function(){
	$(".chosen-select").chosen();
	$("#txtValor").maskMoney({thousands:'', decimal:'.'});
});
</script>

<script src="http://www.google.com/jsapi"></script>

	<script type="text/javascript">
		$(function(){
			$('#cbxNomeProduto').change(function(){
				if( $(this).val() ) {
					$('#cbxLote').hide();
					$('.carregando').show();
					$.getJSON('lotes.ajax.php?search=',{idproduto: $(this).val(), ajax: 'true'}, function(j){
						var options = '<option value=""></option>';	
						for (var i = 0; i < j.length; i++) {
							options += '<option value="' + j[i].identrada + '">' + j[i].loteproduto + '</option>';
						}	
						$('#cbxLote').html(options).show();
						$('.carregando').hide();
					});
				} else {
					$('#cbxLote').html('<option value="">– Escolha um lote –</option>');
				}
			});
		});
		</script>
        
<script src="http://www.google.com/jsapi"></script>

	<script type="text/javascript">
		$(function(){
			$('#cbxLote').change(function(){
				var loteproduto = $('#cbxLote').val();
				var idproduto = $('#cbxNomeProduto').val();		
				if( $(this).val() ) {
					$('#txtQuantidadeDisponivel').hide();
					$('.carregando').show();
					//alert('#txtIdProduto');
					$.getJSON('quantidades.ajax.php?search=',{idproduto: idproduto, loteproduto: loteproduto, ajax: 'true'}, function(j){
						var options = '';	
						for (var i = 0; i < j.length; i++) {
							options += '<option value="' + j[i].quant + '">' + j[i].quant + '</option>';
						}	
						$('#txtQuantidadeDisponivel').html(options).show();
						$('.carregando').hide();
					});
				} else {
					$('#txtQuantidadeDisponivel').html('<option value="">– Escolha um lote –</option>');
				}
			});
		});
		</script>




</head>
<body>
<div id="l9-main">
<header class="l9-header">

<div class="l9-shapes">
	<div class="l9-object1141852890" data-left="0.23%">
    	<p class="bemvindo">Logado como: <?php echo $nomeusuario1; ?> <a href="sair.php"/>[Sair]</a></p>
    </div>
</div>          
</header>
<nav class="l9-nav">
    <?php include 'menu.html'?>
    </nav>
<div class="l9-sheet clearfix">
            <div class="l9-layout-wrapper">
                <div class="l9-content-layout">
                    <div class="l9-content-layout-row">
                        <div class="l9-layout-cell l9-content"><article class="l9-post l9-article">
                                <h2 class="l9-postheader">Produtos em uso - Cadastrar</h2>
                          
                                                
                <div class="l9-postcontent l9-postcontent-0 clearfix"><div class="l9-content-layout">
    <div class="l9-content-layout-row">
    <div class="l9-layout-cell layout-item-0" style="width: 100%" >
        <p>Cadastro de produtos em uso</p>
       <form action="gravaretirada.php" method="post" id="formgravaentrada">
       <table width="100%">  
  <tr>
    <td>Produto</td>
    <td>
      <select id="cbxNomeProduto" name="cbxNomeProduto" class="chosen-select" data-placeholder="Selecione um produto..." style="width: 244px;" tabindex="1">
    <option value=""></option>
     <?php 
			$sql = "SELECT * FROM produtos
					ORDER BY descricaoproduto";
	  		$executar = mysql_query($sql) or die (mysql_error());	  		
			while($reg = mysql_fetch_array($executar))
				{
				?>
           
               <option value="<?php echo $reg['idproduto'];?>" <?php if($reg['idproduto'] == $idproduto)echo 'selected="selected"';?>><?php echo $reg['descricaoproduto'] . " - " . $reg['marcaproduto'] ;?>
			  				 
              </option>
              
				<?php 
				} 
				?>
                </select><label id="cbxNomeProduto-error" class="error" for="cbxNomeProduto"></label>
      </td>
    <td> </td>
  </tr> 
  <tr>
    <td>Lote</td>
    <td>
      <span class="carregando">Aguarde, carregando...</span>
	<select id="cbxLote" name="cbxLote" class="chosen-select22" data-placeholder="Selecione um lote..." style="width: 244px;" tabindex="1">
		<option value=""></option>    
	</select><label id="cbxLote-error" class="error" for="cbxLote"></label>
      </td>
    <td> </td>
  </tr> 
  
  
  <tr>
    <td>Quantidade Combo</td>
    <td>
      <span class="carregando">Aguarde, carregando...</span>
	<select id="txtQuantidadeDisponivel" name="txtQuantidadeDisponivel" class="chosen-select22" data-placeholder="Selecione uma quantidade.." style="width: 244px;" tabindex="1">
		<option value=""></option>    
	</select><label id="txtQuantidadeDisponivel-error" class="error" for="txtQuantidadeDisponivel"></label>
      </td>
    <td> </td>
  </tr> 
  
  
  <tr>
    <td>Quantidade disponível</td>
    <td>
      <input name="txtQuantidadeDisponivel2" type="text" class="txtEditar" id="txtQuantidadeDisponivel2"></td>
    <td> </td>
  </tr>  
   <tr>
    <td width="14%">Quantidade retirada</td>
    <td width="83%">
      <input name="txtQuantidadeRetirada" type="text" class="txtEditar" id="txtQuantidadeRetirada"></td>
    <td width="3%"> </td>
  </tr>
    <tr>
    <td>Setor</td>
    <td>
      <select id="cbxSetor" name="cbxSetor" class="chosen-select" data-placeholder="Selecione um setor..." style="width: 244px;" tabindex="1">
    <option value=""></option>
     <?php 
			$sqlsetor = "SELECT * from setores order by descricaosetor";
	  		$executarsetor = mysql_query($sqlsetor) or die (mysql_error());	  		
					while($regsetor = mysql_fetch_array($executarsetor))
				{
				?>
           
               <option value="<?php echo $regsetor['idsetor'];?>" <?php if($regsetor['idsetor'] == $idsetor)echo 'selected="selected"';?>><?php echo $regsetor['descricaosetor'];?>
			  				 
              </option>
              
				<?php 
				} 
				?>
                </select><label id="cbxNomeProduto-error" class="error" for="cbxNomeProduto"></label>
      </td>
    <td> </td>
  </tr> 
  <tr>
    <td colspan="2"><hr /></td>
    <td> </td>
  </tr>
  <tr>
    <td> </td>
    <td><input type="submit" class="l9-button" name="btnGravar" id="btnGravar" value="Gravar">
    	<input type="reset" class="l9-button" name="btnLimpar" id="btnLimpar" value="Limpar">
      <input type="button" class="l9-button" name="btnCancelar2" id="btnCancelar2" onclick="window.location.href='produtos.php'"value="Cancelar"></td>
    <td> </td>
  </tr>
  <tr>
    <td> </td>
    <td> </td>
    <td> </td>
  </tr>
</table>
       
       </form>      
    </div>
    </div>
</div>
</div>
                                
                

</article></div>
                    </div>
                </div>
            </div>

    </div>
    <p class="l9-page-footer">
        <span id="l9-footnote-links">Desenvolvido por <a href="http://www.l9web.com.br" target="_blank">L9WEB</a>.</span>
    </p>
</div>


</body></html>

Esse é o lotes.ajax.php que carrega os lotes

<?php
	header( 'Cache-Control: no-cache' );
	header( 'Content-type: application/xml; charset="utf-8"', true );

	$con = mysql_connect( 'localhost', 'root', '' ) ;
	mysql_select_db( 'sisestoque01', $con );

	$idproduto = mysql_real_escape_string( $_REQUEST['idproduto'] );

	$lotes = array();

	$sql = "SELECT *
			FROM entradas
			WHERE idproduto=$idproduto
			GROUP BY loteproduto
			ORDER BY loteproduto";
	$res = mysql_query( $sql );
	while ( $row = mysql_fetch_assoc( $res ) ) {
		$lotes[] = array(
			'identrada'		=> $row['identrada'],
			'loteproduto'	=> $row['loteproduto'],
		);
	}

	echo( json_encode( $lotes ) );

Esse é o quantidades.ajax.php que estou com dificuldade de passar 2 parâmetros para o SQL, que deve me retornar a soma

<?php
	header( 'Cache-Control: no-cache' );
	header( 'Content-type: application/xml; charset="utf-8"', true );

	$con = mysql_connect( 'localhost', 'root', '' ) ;
	mysql_select_db( 'sisestoque01', $con );

	$loteproduto = mysql_real_escape_string( $_REQUEST['loteproduto'] ); /*$loteproduto =6635544;*/
	$idproduto = mysql_real_escape_string( $_REQUEST['idproduto'] ); /*$idproduto = 9;*/

	$quantidades = array();

	echo $sql = "SELECT SUM(quantidadecomprada) AS TOTAL FROM entradas WHERE loteproduto='$loteproduto' AND idproduto = '$idproduto'";
	
	$res = mysql_query( $sql );
	while ( $row = mysql_fetch_assoc( $res ) ) {
		$quantidades[] = array(			
			'quant'	=> $row['TOTAL'],
		);
	}

	echo( json_encode( $quantidades ) );
	

Obrigado!

Share this post


Link to post
Share on other sites

Qual o retorno aqui:

$.getJSON('quantidades.ajax.php?search=',{idproduto: idproduto, loteproduto: loteproduto, ajax: 'true'}, function(j){

    console.log(j);
??

Share this post


Link to post
Share on other sites

Veja no console do browser.

Ctrl + Shift + J no Firefox ou Chrome.

Share this post


Link to post
Share on other sites

erro de sintaxe quantidades.ajax.php:1:1

Clicando no erro de sintaxe dá isso:

SELECT SUM(quantidadecomprada) AS TOTAL FROM entradas WHERE loteproduto='6635544' AND idproduto = '9'[{"quant":"2002"}]

Share this post


Link to post
Share on other sites

@William Bruno

Legal esse comando haha

@lucascatani

O Erro em sí é oq a gente precisa para te ajudar.

Posta ele.

Bugou a postagem jovem.

Eu tinha postado corretamente e não gravou, aí dei F5 e não conferi. Consertei.

O erro que aparece no console (CTRL+ SHIFT + J) é: ERRO DE SINTAXE. Clicando no erro de sintaxe aparece o código acima.

Share this post


Link to post
Share on other sites

troca:

echo $sql = "SELECT SUM(quantidadecomprada) AS TOTAL FROM entradas WHERE loteproduto='$loteproduto' AND idproduto = '$idproduto'";
por

$sql = "SELECT SUM(quantidadecomprada) AS TOTAL FROM entradas WHERE loteproduto='$loteproduto' AND idproduto = '$idproduto'";
porque se você der echo de outras coisas além do JSON, você vai interferir no que o AJAX recebe, ai vai dar erro.
  • +1 1

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

  • Similar Content

    • By asacap1000
      Galera já não sei mais onde procurar, estou configurando o processo de login com certificação digital porém não consigo ler o retorno. No site da Certisign explica em java e .Net mas utilizo em minha aplicação da intranet tudo em PHP como eu teria que fazer. Segue exemplo que eles fornecem em .Net
       
      <form action="https://autenticador.certisign.com.br/CertisignLogin/certificado/login" method="get"> <input type="hidden" value="209" id="id" name="id"> <input type="hidden" value="CHAVE CRIPTOGRAFICA INICIAL" id="nome" name="nome"> <input type="hidden" value="http://www.seusite.com.br/suaAplicacao/retorno" id="retorno" name="retorno"> <div> <input type="image" src="images/ico-certisign_30x30.png" alt="Submit" id="btnLoginCertisign"> </div> </form> O de cima envia até aí tudo bem
       
      Abaixo o retorno que é o que não consigo fazer em PHP
       
      string retorno = Request["cb"]; string encryptionKey = "<conteúdo da chave criptográfica descarregada na etapa 2>"; retorno = CryptoLogin.Instance.DecryptText(retorno,encryptionKey);</conteúdo> A variável retorno deverá mostrar as informações como o exemplo aaixo.
       
      CertificadoBean: { emissor: Certisign Autoridade Certificadora TESTE, nome: "PROPRIETARIO DO CERTIFICADO DE TESTE", cpf: "001.002.003-44", cnpj: "", OAB: "", validade: "2015-05-27 20:59:59", emissao: "2014-05-27 21:00:00", email: "proprietario.teste@certisign.com.br", certificadoBase64: "MIIFmDCCBICgAwI...... BAQUFADCCARAx" }  
    • By Camilavip
      Queria saber como fazer esse select e quando eu trazer um estado ele já puxa as cidades contidos nele, e ao escolher a cidade ele trazer os bairros. Consegui pela internet mas só com estados e cidades. no caso em 2 níveis, e eu precisaria em 3, faço pelo mysqli
       
      Em estados no banco está assim
      CREATE TABLE `estados` ( `id_estado` int(10) NOT NULL, `estado` varchar(30) NOT NULL ) ENGINE=Aria DEFAULT CHARSET=latin1; -- -- Extraindo dados da tabela `estados` -- INSERT INTO `estados` (`id_estado`, `estado`) VALUES (1, 'Rio de Janeiro'), (2, 'Minas Gerais'); Cidades
      CREATE TABLE `cidades` ( `id_cidade` int(10) NOT NULL, `id_estado` int(10) NOT NULL, `cidade` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Extraindo dados da tabela `cidades` -- INSERT INTO `cidades` (`id_cidade`, `id_estado`, `cidade`) VALUES (1, 1, 'Rio de Janeiro'), (2, 2, 'Belo Horizonte'); E bairros
      CREATE TABLE `bairros` ( `id_bairro` int(10) NOT NULL, `id_cidade` int(10) NOT NULL, `bairro` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Extraindo dados da tabela `bairros` -- INSERT INTO `bairros` (`id_bairro`, `id_cidade`, `bairro`) VALUES (1, 1, 'Centro'), (2, 1, 'Tijuca'), (3, 1, 'Leblon'), (4, 2, 'Pampulha');  
    • By danilo759
      Estou com uma dúvida, em uma tabelinha é cadastrado a data em uma coluna e a hora em outra coluna, então para "juntar" podemos usar CONCAT() no SELECT. Tudo certo...
       
      SELECT id, CONCAT(data_ini, ' ', hora_ini) as inicio FROM tabela

      Retorna como esperado:

       

      Minha dúvida é, se eu quiser exibir o horário de término para ficar assim como seria a consulta? Lembrando que não existe as colunas data_final e horario_final.

      2020-09-13 03:00:00 2020-09-13 04:00:00
      2020-09-13 04:00:00 2020-09-13 05:00:00
      2020-09-13 05:00:00 ....
    • By Alex Oliveira Dos Santos
      Boa tarde, após pesquisar muito e passar 2 dias tentando resolver estou aqui pedindo um super help.
      Estou utilizando a classe NfePhp mas ao gerar o xml, o mesmo amontoa os nós xml "det" tudo um dentro do outro, e eu não faço ideia do porque e como corrigir, por postar o arquivo que monto e o xml gerado, além de uma imagem ilustrativa do problema:
       
       
       
      <?php /** * Created by Alex O. Santos. * Date: 30/09/2019 * Time: 10:29 */ //namespace Classes; //use NFePHP\NFe\Make; use NFePHP\NFe; use NFePHP\NFe\Make; use NFePHP\NFe\Tools; use NFePHP\Common\Certificate; //use stdClass; class GerarNFE { private $config; private $tools; public function __construct($config) { $this->config = $config; $configJson = json_encode($config);//adicionado novo 29-06-2020 $certificadoDigital = file_get_contents("asasasasa.pfx"); $password = '123456'; $this->tools = new Tools($configJson, Certificate::readPfx($certificadoDigital, $password)); //$xmlAssinado = $tools->signNFe($xml); } public function GerarNFE(){ //cria a nota vazia $nfe = new Make(); /** INF NFE **/ $std = new \stdClass(); $std->versao = '4.00'; //versão do layout //$std->Id = 'NFe35150271780456000160550010000000021800700082'; //se o Id de 44 digitos não for passado será gerado automaticamente $std->pk_nItem = null; //deixe essa variavel sempre como NULL $nfe->taginfNFe($std); /** IDE **/ $std = new \stdClass(); $std->cUF = 42;//codigo uf ibge $std->cNF = rand(11111111, 99999999);// 80070008 aleatorio $std->natOp = 'Venda de mercadoria adquirida ou recebida de terceiros';//natureza de operação $std->indPag = 0; //NÃO EXISTE MAIS NA VERSÃO 4.00 $std->mod = 55; $std->serie = 1; $std->nNF = 2;//numero da nota $std->dhEmi = date("Y-m-d\TH:i:sP");//2015-02-19T13:48:00-02:00 $std->dhSaiEnt = date("Y-m-d\TH:i:sP");//estava null $std->tpNF = 1;//entrada ou saida $std->idDest = 1;//dentro ou fora do estado *** 1=Operação interna, 2=Operação interestadual, 3=Operação com exterior $std->cMunFG = 4204608;//criciuma conforme ibge $std->tpImp = 1;//2=paisagem ou 1=retrato $std->tpEmis = 1;//normal ou contingencia $std->cDV = 3;//digito verificador $std->tpAmb = 2;//1 = Produção[É o ambiente designado para documentos com valor fiscal]. 2= Homologação[É o ambiente de testes]. $std->finNFe = 1;//complementar ou normal ou ajuste $std->indFinal = 1;//se é consumidor final ou nao $std->indPres = 1;//nao esta presente presencial ou nao $std->procEmi = 0;//sempre zero aplicativo contribuite(erp) $std->verProc = '1.0.0';//versão do erp $std->dhCont = null;//data e hora que entrou em contingencia $std->xJust = null;//justificativa se entrou em contingencia $nfe->tagide($std); /** EMITENTE **/ $std = new \stdClass(); $std->xNome = "NET BIBLIAS COMERCIO DE ARTIGOS EVANGELICOS LTDA-ME";//razão social $std->xFant = "NET BIBLIAS COMERCIO DE ARTIGOS EVANGELICOS LTDA-ME";//nome fantasia $std->IE = "258591137";//obrigatório $std->IEST = ""; $std->IM = "";//OPCIONAL $std->CNAE = "";//OPCIONAL $std->CRT = "1";//regime tributário? $std->CNPJ = "16604805000184"; //indicar apenas um CNPJ ou CPF $std->CPF = ""; $nfe->tagemit($std); /** ENDEREÇO EMITENTE **/ $std = new \stdClass(); $std->xLgr = "Rua Carlos Otaviano Seara"; $std->nro = "349"; $std->xCpl = "";//nao é mais necessário $std->xBairro = "Nossa Senhora da Salete"; $std->cMun = "4204608"; $std->xMun = "Criciúma"; $std->UF = "SC"; $std->CEP = "88813410"; $std->cPais = "1058"; $std->xPais = "Brasil"; $std->fone = "48999689698"; $nfe->tagenderEmit($std); /** DESTINATÁRIO **/ $std = new \stdClass(); $std->xNome = "Alex Olivera Santos"; $std->indIEDest = "2";//1=tem ie 2=nao tem ie @@@Luiz esta como 9 $std->IE = ""; $std->ISUF = "";//manaus $std->IM = "";//inscricao municipal obrigatorio $std->email = "alexsc2011@gmail.com"; $std->CNPJ = ""; //indicar apenas um CNPJ ou CPF ou idEstrangeiro $std->CPF = "04587351911"; $std->idEstrangeiro = null;///acho que é passaporte ou null $nfe->tagdest($std); /** ENDEREÇO DESTINATÁRIO **/ $std = new \stdClass(); $std->xLgr = "Rua Roberto Burlemax"; $std->nro = "118"; $std->xCpl = ""; $std->xBairro = "Ceará"; $std->cMun = "4204608"; $std->xMun = "Criciúma"; $std->UF = "SC"; $std->CEP = "88815092"; $std->cPais = "1058"; $std->xPais = "Brasil"; $std->fone = "62994430218"; $nfe->tagenderDest($std); //inicio foreach de produtos /** PRODUTOS **/ $std = new \stdClass(); $std->item = 1; //item da NFe //contador com count++ incrementando a cada passada, começar com 1 $std->cProd = "4634";// $std->cEAN = "SEM GTIN";//codigo de barras caixa (obrigatório?) $std->xProd = "OLEO DE UNcaO 60 ML";//interrno sistema $std->NCM = "15122990";// $std->cBenef = ""; //incluido no layout 4.00 $std->EXTIPI = ""; $std->CFOP = "6102";//codigo da saida se é saida se é entrada pra outro estado etc $std->uCom = "UND";// $std->qCom = "2.0000";//quantidade??? $std->vUnCom = "6.9900000000";//valor do produto???? $std->cEANTrib = "SEM GTIN";//codigo de barras item separado $std->uTrib = "UND";// $std->qTrib = "1.0000";//quantidade $std->vUnTrib = "13.98";// anterior $std->vUnTrib = "13.9800000000" $aa = $std->qTrib; $bb = $std->vUnTrib; $teste = $aa * $bb; $std->vProd = $teste;//"13.98";// $std->vFrete = "47.66";// $std->vSeg = ""; $std->vDesc = ""; $std->vOutro = ""; $std->indTot = 1;//integrar item ao resultado da nota (padrão) $nfe->tagprod($std); /** IMPOSTO **/ $std = new \stdClass(); $std->item = 1; //item da NFe mesmo id de cima do produto $std->vTotTrib = 4.00;//pegar do ibpt api total de imposto do produto? $nfe->tagimposto($std); /** ICMS **/ $std = new \stdClass(); $std->item = 1; //item da NFe $std->orig = 0;//0=nacional 1=importado $std->CST = "00"; //faltou igualar luiz??? CSOSN <CSOSN>103</CSOSN> $std->modBC = 0; //return $std->vProd;// TESTE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX $std->vBC = $teste; $std->pICMS = "18.00";//percentual de imposto $std->vICMS = $std->vBC * $std->pICMS / 100;//valor base icns $nfe->tagICMS($std); // aqui só vai montar se for interstadual $std = new \stdClass(); $std->item = 1; //item da NFe seguir o mesmo do produto for $std->vBCUFDest = 13.98;//valor unitário precoBase ??? $std->vBCFCPUFDest = 0.00; $std->pFCPUFDest = 0.0000; $std->pICMSUFDest = 18.0000;//18 é padrao pra todos??? $std->pICMSInter = 7.00;//estava 12.00 $std->pICMSInterPart = 100.0000; $std->vFCPUFDest = 0.00; $std->vICMSUFDest = 0.00; $std->vICMSUFRemet = 0.00; $nfe->tagICMSUFDest($std); // fim aqui só monta se for interstadual $std = new \stdClass(); $std->item = 1; $std->cEnq = '999'; $std->CST = '50'; $std->vIPI = 0; $std->vBC = 0; $std->pIPI = 0; $nfe->tagIPI($std); /** PIS **/ $std = new \stdClass(); $std->item = 1; //item da NFe $std->CST = '01';// $std->vBC = $teste;// nota luiz esta 0.00 ??? $std->pPIS = "0.0000";// $std->vPIS = $std->vBC * ($std->pPIS / 100);// ou shekinah "0.00" ??? ;u padrão $std->vProd $std->qBCProd = null; $std->vAliqProd = null; $nfe->tagPIS($std); $std = new \stdClass(); $std->item = 1; $std->vCOFINS = 0; $std->vBC = 0; $std->pCOFINS = 0; $nfe->tagCOFINSST($std); /** COFINS **/ $std = new \stdClass(); $std->item = 1; //item da NFe $std->CST = '01';//estava 50 $std->vBC = 0.00;// $teste; para o caso de apenas um item, senao somar tudo, valor pago pelo cliente Luiz esta 0.00 ??? $std->pCOFINS = 0.0000; $std->vCOFINS = 0.00;//$std->vBC * ($std->pCOFINS / 100) estava assim $std->qBCProd = null; $std->vAliqProd = null; $nfe->tagCOFINS($std); /** IPI **/ // fim monta o foreach de cada produto //inicio foreach de produtos /** PRODUTOS **/ $std = new \stdClass(); $std->item = 2; //item da NFe //contador com count++ incrementando a cada passada, começar com 1 $std->cProd = "4634";// $std->cEAN = "SEM GTIN";//codigo de barras caixa (obrigatório?) $std->xProd = "OLEO DE UNcaO 60 ML";//interrno sistema $std->NCM = "15122990";// $std->cBenef = ""; //incluido no layout 4.00 $std->EXTIPI = ""; $std->CFOP = "6102";//codigo da saida se é saida se é entrada pra outro estado etc $std->uCom = "UND";// $std->qCom = "2.0000";//quantidade??? $std->vUnCom = "6.9900000000";//valor do produto???? $std->cEANTrib = "SEM GTIN";//codigo de barras item separado $std->uTrib = "UND";// $std->qTrib = "1.0000";//quantidade $std->vUnTrib = "13.98";// anterior $std->vUnTrib = "13.9800000000" $aa = $std->qTrib; $bb = $std->vUnTrib; $teste = $aa * $bb; $std->vProd = $teste;//"13.98";// $std->vFrete = "47.66";// $std->vSeg = ""; $std->vDesc = ""; $std->vOutro = ""; $std->indTot = 2;//integrar item ao resultado da nota (padrão) $nfe->tagprod($std); /** IMPOSTO **/ $std = new \stdClass(); $std->item = 2; //item da NFe mesmo id de cima do produto $std->vTotTrib = 4.00;//pegar do ibpt api total de imposto do produto? $nfe->tagimposto($std); /** ICMS **/ $std = new \stdClass(); $std->item = 2; //item da NFe $std->orig = 0;//0=nacional 1=importado $std->CST = "00"; //faltou igualar luiz??? CSOSN <CSOSN>103</CSOSN> $std->modBC = 0; //return $std->vProd;// TESTE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX $std->vBC = $teste; $std->pICMS = "18.00";//percentual de imposto $std->vICMS = $std->vBC * $std->pICMS / 100;//valor base icns $nfe->tagICMS($std); // aqui só vai montar se for interstadual $std = new \stdClass(); $std->item = 2; //item da NFe seguir o mesmo do produto for $std->vBCUFDest = 13.98;//valor unitário precoBase ??? $std->vBCFCPUFDest = 0.00; $std->pFCPUFDest = 0.0000; $std->pICMSUFDest = 18.0000;//18 é padrao pra todos??? $std->pICMSInter = 7.00;//estava 12.00 $std->pICMSInterPart = 100.0000; $std->vFCPUFDest = 0.00; $std->vICMSUFDest = 0.00; $std->vICMSUFRemet = 0.00; $nfe->tagICMSUFDest($std); // fim aqui só monta se for interstadual $std = new \stdClass(); $std->item = 2; $std->cEnq = '999'; $std->CST = '50'; $std->vIPI = 0; $std->vBC = 0; $std->pIPI = 0; $nfe->tagIPI($std); /** PIS **/ $std = new \stdClass(); $std->item = 2; //item da NFe $std->CST = '01';// $std->vBC = $teste;// nota luiz esta 0.00 ??? $std->pPIS = "0.0000";// $std->vPIS = $std->vBC * ($std->pPIS / 100);// ou shekinah "0.00" ??? ;u padrão $std->vProd $std->qBCProd = null; $std->vAliqProd = null; $nfe->tagPIS($std); $std = new \stdClass(); $std->item = 2; $std->vCOFINS = 0; $std->vBC = 0; $std->pCOFINS = 0; $nfe->tagCOFINSST($std); /** COFINS **/ $std = new \stdClass(); $std->item = 2; //item da NFe $std->CST = '01';//estava 50 $std->vBC = 0.00;// $teste; para o caso de apenas um item, senao somar tudo, valor pago pelo cliente Luiz esta 0.00 ??? $std->pCOFINS = 0.0000; $std->vCOFINS = 0.00;//$std->vBC * ($std->pCOFINS / 100) estava assim $std->qBCProd = null; $std->vAliqProd = null; $nfe->tagCOFINS($std); // fim monta o foreach de cada produto /** TOTAIS **/ $std = new \stdClass(); $std->vBC = $teste; $std->vICMS = '0.00'; $std->vICMSDeson = ''; $std->vFCP = ''; //incluso no layout 4.00 $std->vBCST = ''; $std->vST = ''; $std->vFCPST = ''; //incluso no layout 4.00 $std->vFCPSTRet = ''; //incluso no layout 4.00 $std->vProd = $teste; $std->vFrete = ''; $std->vSeg = ''; $std->vDesc = ''; $std->vII = ''; $std->vIPI = ''; $std->vIPIDevol = ''; //incluso no layout 4.00 $std->vPIS = ''; $std->vCOFINS = ''; $std->vOutro = ''; $std->vNF = ''; $std->vTotTrib = '0.00'; $nfe->tagICMSTot($std); /** TRANSPORTADORA **/ $std = new \stdClass(); $std->modFrete = 1; $nfe->tagtransp($std); /** VOLUME **/ $std = new \stdClass(); $std->item = '1'; //indicativo do numero do volume $std->qVol = '2';//QTD VOLUME $std->esp = 'caixa'; $std->marca = 'OLX'; $std->nVol = '11111'; /*$std->pesoL = 10.50; $std->pesoB = 11.00;*/ $nfe->tagvol($std); /** PAGAMENTO **/ $std = new \stdClass(); $std->vTroco = null; //incluso no layout 4.00, obrigatório informar para NFCe (65) $nfe->tagpag($std); /** DETALHE DO PAGAMENTO **/ $std = new \stdClass(); $std->tPag = '14';//forma de pgto $std->vPag = 200.00; //Obs: deve ser informado o valor pago pelo cliente $std->CNPJ = '12345678901234'; $std->tBand = '01'; $std->cAut = '3333333'; $std->tpIntegra = 1; //incluso na NT 2015/002 $std->indPag = '0'; //0= Pagamento à Vista 1= Pagamento à Prazo $nfe->tagdetPag($std); /** INFORMAÇÕES ADICIONAIS **/ $std = new \stdClass(); $std->infAdFisco = 'informacoes para o fisco'; $std->infCpl = 'informacoes complementares'; $nfe->taginfAdic($std); /** MONTA A NF-E **/ $result = $nfe->montaNFe(); /** **/ //$result = $nfe->monta(); /** **/ //$result = $nfe->monta(); /** **/ //$xml = $nfe->getXML(); /** **/ //$chave = $nfe->getChave(); //var_dump($result); if($nfe->montaNFe()){ return $nfe->getXML();//funfando }else{ echo 'Erro ao gerar NF-e'; var_dump($nfe); return ; }/**/ } public function sign($xml){ try { $xmlAssinado = $this->tools->signNFe($xml); return $xmlAssinado; } catch (\Exception $e) { exit('erro: '.$e->getMessage().' ::: '.$xml); } //return var_dump($this->tools->signNFe($xml)); } } resultado xml gerado
      <!--?xml version="1.0" encoding="UTF-8"?--> <nfe xmlns="http://www.portalfiscal.inf.br/nfe"><infnfe id="NFe42200916604805000184550010000000021777050308" versao="4.00"><ide><cuf>42</cuf><cnf>77705030</cnf><natop>Venda de mercadoria adquirida ou recebida de terceiros</natop><mod>55</mod><serie>1</serie><nnf>2</nnf><dhemi>2020-09-10T17:51:52-03:00</dhemi><dhsaient>2020-09-10T17:51:52-03:00</dhsaient><tpnf>1</tpnf><iddest>1</iddest><cmunfg>4204608</cmunfg><tpimp>1</tpimp><tpemis>1</tpemis><cdv>8</cdv><tpamb>2</tpamb><finnfe>1</finnfe><indfinal>1</indfinal><indpres>1</indpres><procemi>0</procemi><verproc>1.0.0</verproc></ide><emit><cnpj>16604805000184</cnpj><xnome>NET BIBLIAS COMERCIO DE ARTIGOS EVANGELICOS LTDA-ME</xnome><xfant>NET BIBLIAS COMERCIO DE ARTIGOS EVANGELICOS LTDA-ME</xfant><enderemit><xlgr>Rua Carlos Otaviano Seara</xlgr><nro>349</nro><xbairro>Nossa Senhora da Salete</xbairro><cmun>4204608</cmun><xmun>Criciúma</xmun><uf>SC</uf><cep>88813410</cep><cpais>1058</cpais><xpais>Brasil</xpais><fone>48999689698</fone></enderemit><ie>258591137</ie><crt>1</crt></emit><dest><cpf>04587351911</cpf><xnome>NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xnome><enderdest><xlgr>Rua Roberto Burlemax</xlgr><nro>118</nro><xbairro>Ceará</xbairro><cmun>4204608</cmun><xmun>Criciúma</xmun><uf>SC</uf><cep>88815092</cep><cpais>1058</cpais><xpais>Brasil</xpais><fone>62994430218</fone></enderdest><indiedest>2</indiedest><email>alexsc2011@gmail.com</email></dest><det nitem="1"><det nitem="2"><det nitem="1"><prod><cprod>4634</cprod><cean>SEM GTIN</cean><xprod>OLEO DE UNcaO 60 ML</xprod><ncm>15122990</ncm><cfop>6102</cfop><ucom>UND</ucom><qcom>2.0000</qcom><vuncom>6.9900000000</vuncom><vprod>13.98</vprod><ceantrib>SEM GTIN</ceantrib><utrib>UND</utrib><qtrib>1.0000</qtrib><vuntrib>13.98</vuntrib><vfrete>47.66</vfrete><indtot>1</indtot></prod><imposto><vtottrib>4.00</vtottrib><icms><icms00><orig>0</orig><cst>00</cst><modbc>0</modbc><vbc>13.98</vbc><picms>18.0000</picms><vicms>2.52</vicms></icms00></icms><ipi><cenq>999</cenq><ipitrib><cst>50</cst><vbc>0.00</vbc><pipi>0.0000</pipi><vipi>0.00</vipi></ipitrib></ipi><pis><pisaliq><cst>01</cst><vbc>13.98</vbc><ppis>0.0000</ppis><vpis>0.00</vpis></pisaliq></pis><cofins><cofinsaliq><cst>01</cst><vbc>0.00</vbc><pcofins>0.0000</pcofins><vcofins>0.00</vcofins></cofinsaliq></cofins><cofinsst><vbc>0.00</vbc><pcofins>0.0000</pcofins><vcofins>0.00</vcofins></cofinsst><icmsufdest><vbcufdest>13.98</vbcufdest><vbcfcpufdest>0</vbcfcpufdest><pfcpufdest>0.0000</pfcpufdest><picmsufdest>18.0000</picmsufdest><picmsinter>7.00</picmsinter><picmsinterpart>100.0000</picmsinterpart><vfcpufdest>0</vfcpufdest><vicmsufdest>0</vicmsufdest><vicmsufremet>0</vicmsufremet></icmsufdest></imposto></det><det nitem="2"><prod><cprod>4634</cprod><cean>SEM GTIN</cean><xprod>OLEO DE UNcaO 60 ML</xprod><ncm>15122990</ncm><cfop>6102</cfop><ucom>UND</ucom><qcom>2.0000</qcom><vuncom>6.9900000000</vuncom><vprod>13.98</vprod><ceantrib>SEM GTIN</ceantrib><utrib>UND</utrib><qtrib>1.0000</qtrib><vuntrib>13.98</vuntrib><vfrete>47.66</vfrete><indtot>2</indtot></prod><imposto><vtottrib>4.00</vtottrib><icms><icms00><orig>0</orig><cst>00</cst><modbc>0</modbc><vbc>13.98</vbc><picms>18.0000</picms><vicms>2.52</vicms></icms00></icms><ipi><cenq>999</cenq><ipitrib><cst>50</cst><vbc>0.00</vbc><pipi>0.0000</pipi><vipi>0.00</vipi></ipitrib></ipi><pis><pisaliq><cst>01</cst><vbc>13.98</vbc><ppis>0.0000</ppis><vpis>0.00</vpis></pisaliq></pis><cofins><cofinsaliq><cst>01</cst><vbc>0.00</vbc><pcofins>0.0000</pcofins><vcofins>0.00</vcofins></cofinsaliq></cofins><cofinsst><vbc>0.00</vbc><pcofins>0.0000</pcofins><vcofins>0.00</vcofins></cofinsst><icmsufdest><vbcufdest>13.98</vbcufdest><vbcfcpufdest>0</vbcfcpufdest><pfcpufdest>0.0000</pfcpufdest><picmsufdest>18.0000</picmsufdest><picmsinter>7.00</picmsinter><picmsinterpart>100.0000</picmsinterpart><vfcpufdest>0</vfcpufdest><vicmsufdest>0</vicmsufdest><vicmsufremet>0</vicmsufremet></icmsufdest></imposto></det><total><icmstot><vbc>13.98</vbc><vicms>0.00</vicms><vicmsdeson>0.00</vicmsdeson><vfcp>0.00</vfcp><vbcst>0.00</vbcst><vst>0.00</vst><vfcpst>0.00</vfcpst><vfcpstret>0.00</vfcpstret><vprod>13.98</vprod><vfrete>95.32</vfrete><vseg>0.00</vseg><vdesc>0.00</vdesc><vii>0.00</vii><vipi>0.00</vipi><vipidevol>0.00</vipidevol><vpis>0.00</vpis><vcofins>0.00</vcofins><voutro>0.00</voutro><vnf>109.30</vnf></icmstot></total><transp><modfrete>1</modfrete><vol><qvol>2</qvol><esp>caixa</esp><marca>OLX</marca><nvol>11111</nvol></vol></transp><pag><detpag><indpag>0</indpag><tpag>14</tpag><vpag>200.00</vpag><card><tpintegra>1</tpintegra><cnpj>12345678901234</cnpj><tband>01</tband><caut>3333333</caut></card></detpag></pag><infadic><infadfisco>informacoes para o fisco</infadfisco><infcpl>informacoes complementares</infcpl></infadic></det></det></infnfe></nfe>  

    • By iguulima
      Ola a todos,
      Estou com uma dúvida e ja tentei de tudo que estão dentro das minhas limitações de conhecimento. Tenho um laço de repetição While sendo executado e quero que uma Variavel seja executada apenas uma vez dentro desse laço. Existe essa possibilidade. Obrigado a todos. Segue o código:

       
      <?php $consult = $row['id']; $sql = "SELECT * FROM upload_data WHERE USER_CODE = '$consult' ORDER BY id ASC"; $resultadoimg = mysql_query($sql); $numero_registros = mysql_num_rows($resultadoimg); while($registrosimg = mysql_fetch_array($resultadoimg)) { ?> <li data-target="#carousel-custom" data-slide-to="0" <?php ele precisa ser executado uma unica vez aqui?>><img src="" alt=""></li> <?php } ?>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.