Jump to content

marcelobbt

Members
  • Content count

    265
  • Joined

  • Last visited

Posts posted by marcelobbt


  1. Como falei, peguei apenas parte do código.

    Tem duas colunas, uma em cada lateral. Apenas não indiquei no html. De qualquer forma o link que você passou já me deu a dica de como fazer. Obrigado e desculpa se compliquei a coisa.

     

    O que precisava era tratar a classe "col2" como um grid ("display: grid;") assim como o container, aí vai atender ao que eu quero.

     

     


  2. Estava tentando criar um leiaute com o formato GRID, mas me deparei com um problema. Não consigo colocar DIV dentro de uma DIV do leiaute do GRID.

     

    Queria saber como faço isso. Abaixo segue exemplo onde no div "col2" queria colocar duas div, uma do lado da outra:

     

    CSS

    .gridcontainer {
      display: grid;
      justify-content: center;
      grid-template-columns: 1fr 3fr 3fr 3fr 1fr;  
      grid-gap: 3px;
    }
    .gridcontainer > div {
      /*text-align: center;*/
      padding: 10px;
      /*font-size: 20px;*/
    }
    .esquerda {
      grid-row: 1 / 5;
    }
    .direita {
      grid-row: 1 / 5;
      grid-column: 5 / 5;
    }
    .principal {
      grid-column: 2 / 5;
      background-color: #ffffff;
      padding-left: 10px;
    }

    HTML

    <div class="gridcontainer">
      <div class="principal">
        <p>texto</p>
      </div>
      <div class="col1">
        <p>texto</p>
      </div>
      <div class="col2">
        <div class="esquerda">
          <img src="...">
          <p>Imagem legenda</p>
        </div>
        <div class="direita">
          <p>Texto</p>
        </div>
      </div>
    </div>

     

     

     


  3. O PHP é pq o sistema todo está em PHP. E como o framework me facilita a montar o form eu acabo usando ele, mas poderia montar o form em html simples.

     

    Na verdade o javascript que estou usando apenas para executar uma ação ao escolher opções no form. Isso funcionou muito bem no form para criar as informações. Mas quando fui criar o form para editar não consigo jogar os valores nos campos select por causa do AngularJS. Se tivesse uma forma de lançar esses valores no form eu mudaria. Só não estou sabendo fazer.


  4. Eu estou montando um form para editar alguns dados, então uso o PHP/Codeigniter para montar a página com as informações. Acontece que existem umas caixas de escolha que possuem um código em AngularJS para executar uma fórmula e quando coloco o "ng-model", simplesmente some o item que deveria estar marcado.

     

    Segue parte do form abaixo:

    <div class="form-group">
    	<label>Trajetória:</label>
    	<?php echo form_input(array('type'=>"text", 'class'=>"form-control", 'name'=>'trajetoriaform','id'=>'trajetoriaform'),$riscoBD->__get('trajetoria')); ?>
    </div>
    <div class="form-group">
    	<label>Frequência:</label>
    	<?php echo form_dropdown(array('class'=>"form-control", "ng-model"=>"frequencia", "ng-change"=>"calcRisco()", 'name'=>'frequenciaform','id'=>'frequenciaform'), $frequencia, $riscoBD->__get('frequencia')); ?>
    </div>
    <div class="form-group">
    	<label>Probabilidade:</label>
    	<?php echo form_dropdown(array('class'=>"form-control", "ng-model"=>"probabilidade", "ng-change"=>"calcRisco()", 'name'=>'probabilidadeform','id'=>'probabilidadeform'), $probabilidade, set_value('probabilidadeform')); ?>
    </div>
    <div class="form-group">
    			<label>Severidade:</label>
    			<?php echo form_dropdown(array('class'=>"form-control", "ng-model"=>"severidade", "ng-change"=>"calcRisco()", 'name'=>'severidadeform','id'=>'severidadeform'), $severidade, set_value('severidadeform')); ?>
    </div>
    <div class="form-group">
    	<label>Risco:</label>
    	<?php echo form_input(array('type'=>"text", "ng-value"=>"resultadorisco", 'class'=>"form-control", 'name'=>'riscoform','id'=>'riscoform', "ng-model"=>"risco"),set_value('riscoform')); ?>
    </div>

     

    Quando gera o html, ao colocar para inspecionar o código de uma das caixas o código fica assim:

    <div class="form-group">
    	<label>Frequência:</label>
    	<select class="form-control" ng-model="frequencia" ng-change="calcRisco()" name="frequenciaform" id="frequenciaform">
    		<option value="? undefined:undefined ?"></option>
    		<option value="1" selected="selected">Rara</option>
    		<option value="2">Eventual</option>
    		<option value="3">Habitual</option>
    		<option value="4">Permanente</option>
    	</select>
    </div>

    Essa linha "4" aparece do angularJS e é o que impede que apareça o valor selected.

     

    Queria saber se tem algum geito de fazer o javascript mostrar o valor que vem do PHP.

     

    Abaixo o script:

    var app = angular.module('risco', []);
    app.controller('CalculaRisco', function($scope) {
    	$scope.frequencia;
    	$scope.probabilidade;
    	$scope.severidade;
    	$scope.calcRisco = function () {		
    		var freq = parseInt ($scope.frequencia);
    		var prob = parseInt ($scope.probabilidade);
    		var sev = parseInt ($scope.severidade); //console.log(sev+' '+prob+' '+freq);
    		risco =  freq + prob + sev;
    		if (risco <= 4) {
    			$scope.risco = 'Baixo';
    		} else if (risco <= 7) {
    			$scope.risco = 'M\u00e9dio';
    		} else if (risco <= 10) {
    			$scope.risco = 'Alto';
    		} else {
    			$scope.risco = 'Muito Alto';
    		}
    		//console.log(risco+$scope.severidade);
    	};	
    });

     


  5. Encontrei um código para formatar o valor da forma que eu quero, o problema que ele aciona o script para todos os inputs (ver abaixo)

    $(function(){
       $('input').bind('keypress',mask.money)
    });

    Porém queria aplicar apenas a um dos inputs do meu form.

     

    Abaixo segue o script completo

    var mask = {
        money: function() {
          var el = this
          ,exec = function(v) {
             v = v.replace(/\D/g,"");
             v = new String(Number(v));
             var len = v.length;
             if (1== len)
                v = v.replace(/(\d)/,"0.0$1");
             else if (2 == len)
                v = v.replace(/(\d)/,"0.$1");
             else if (len > 2) {
                v = v.replace(/(\d{2})$/,'.$1');
             }
             return v;
          };
     
          setTimeout(function(){
             el.value = exec(el.value);
          },1);
       }
    }
     
    $(function(){
       $('input').bind('keypress',mask.money)
    });

    o input seria o abaixo:

    <input type="text" id="valorform" name="valorform">

     


  6. Obrigado aos que tentaram me ajudar. Encontrei um script antigo e fazendo uma modificações deu certo. Segue o resultado para quem quiser.

     

    <script>
    (function(){
    	"use strict";
     
    	var marcados = 0;
    	var verifyCheckeds = function($checks) {
    		if( marcados>="<?php echo $numeroEscolhas; ?>" ) {
    			loop($checks, function($element) {
    				$element.disabled = $element.checked ? '' : 'disabled';
    			});
    		} else {
    			loop($checks, function($element) {
    				$element.disabled = '';
    			});
    		}
    	};
    	var loop = function($elements, cb) {
    		var max = $elements.length;
    		while(max--) {
    			cb($elements[max]);
    		}
    	}
    	var count = function($element) {
    		return $element.checked ? marcados + 1 : marcados - 1;
    	}
    	window.onload = function(){
    		var $checks = document.querySelectorAll('input[type="checkbox"]');
    		loop($checks, function($element) {
    			$element.onclick = function(){
    				marcados = count(this);
    				verifyCheckeds($checks);
    			}
    			if($element.checked) marcados = marcados + 1;
    		});
    		verifyCheckeds($checks);
    	}
    }());
    </script>

     


  7. Estou criando um sistema de votação onde a pessoa pode escolher um número determinado de respostas, então queria desabilitar as checkbox ao chegar a este valor e voltar a habilitar se a pessoa desmarcar algum campo. Problema que não tenho ideia como fazer isso em javascript.

     

    Segue o código abaixo:

     

    <h2>Votação</h2>
    <div class="row">
    	<div class="col-sm-12">
    		<h4><?php echo $votacao->__get('titulo'); ?></h4>
    		<p>Término em <?php echo $votacao->__get('dataTermino'); ?></p>
    		<p><?php echo $erro; ?></p>
    		<?php echo form_open($link, array('class'=>"form-horizontal")); ?>
    		<?php
    			$i = 0;
    			foreach ($votacao->__get('opcoes') as $opcao){
    				echo '<div class="form-group">
    						<label>'.$opcao.'</label>'.
    						'<div class="col-sm-1">
    						<input class="form-control" type="checkbox"  onkeyup="calcula()" name="opcaoform'.$i.'" id="opcao"/> '.
    						'</div></div>';
    				$i++;
    			}
    		?>
    		<input type="text" name="total" id="total" value="<?php echo $total; ?>" style="display: none"/>
    		<div class="form-group">
    			<div class="col-sm-offset-2 col-sm-6">
    				<?php echo form_submit(array('name'=>'votar'), 'Votar'); ?>
    			</div>
    		</div>
    	</div>
    </div>
    <script>
    	//recebe valores do PHP
    	Function calcula () {
    		var numeroEscolhas = "<?php echo $numeroEscolhas; ?>";
    		var totalAnterior = document.getElementById('total').value;
    		if () {
    			//se marcou acrescenta um ao total
    			var total = totalAnterior + 1;
    		} else {
    			//se desmarcou diminui um ao total
    			var total = totalAnterior - 1;
    		}
    		
    		if (total == numeroEscolhas) {
    			//desabilita checkboxs
    			document.getElementById('opcao').disabled;
    		} else {
    			//habilita checkboxs;
    			
    		}
    	}	
    </script>

     

     


  8. Estou utilizando a blibioteca TCPDF (https://tcpdf.org/) para gerar arquivos em PDF na minha aplicação.

    Acontece que se eu inserir alguma palavra com acento no header a palavra aparece apenas a primeira letra.

     

    A linha que estou tentando alterar é essa abaixo.

    $pdf->SetHeaderData($exportacao['logo'], 40, $exportacao['titulo'], $exportacao['subtitulo']);

     

    Já tentei escrever a palavra, passar por variável (como acima) mas nada adiantou.

    Já tentei usar codificações como os exemplos abaixo mas nada resolveu.

     

    Palavra: Título enviada como:  Tiacute;tulo ou T\u00edtulo

     

    Será que alguém pode me dar uma ajuda?

    Obs.: Esse problema é apenas no header.


  9. Estou montando um form que acrescenta alguns campos mais esses campos que são acrescentados não consigo fazer funcionar a validação.

     

    Obs: Se eu colocar o campo no html as regras de validação funcionam, mas se eu acrescento via botão ele não funciona.

     

    html:

    <div class="row"  ng-app="acidente">
    	<div class="col-sm-12">
    		<h2>Cadastrar Acidente</h2>
    		<p>Empresa: <?php echo '<strong>'.$mensal->__get('empresa').'</strong>&nbsp;&nbsp;-&nbsp;&nbsp;Período:'.$mensal->__get('mes').'/'.$mensal->__get('ano'); ?></p>
    		<form class="form-horizontal" name="acidenteForm" novalidate action="http://www.google.com">
    			<div class="form-group">
    				<label class="col-sm-2 control-label">Dia do Acidente<span class="vermelho">*</span>:</label>
    				<div class="col-sm-10">
    					<input type="number" name="diaform" class="form-control" ng-model="diaform" required dia-Acidente>
    					&nbsp;&nbsp;<span class="vermelho" ng-show="acidenteForm.diaform.$invalid && acidenteForm.diaform.$dirty">O dia do acidente deve ser um número válido.</span>
    				</div>
    			</div>
    			<div class="form-group">
    				<label class="col-sm-2 control-label">Descrição do Acidente<span class="vermelho">*</span>:</label>
    				<div class="col-sm-10">
    					<textarea name="descricaoform" class="form-control" required ng-model="descricaoform" rows="5"></textarea>
    					<p class="vermelho" ng-show="acidenteForm.descricaoform.$invalid && acidenteForm.descricaoform.$dirty">Favor preencher a descrição do acidente.</p>
    				</div>
    			</div>
    			<div class="form-group">
    				<label class="col-sm-2 control-label">Recomendações do Acidente:</label>
    				<div class="col-sm-10">
    					<textarea name="recomendacaoform" class="form-control" rows="5"></textarea>
    				</div>
    			</div>
    			<span ng-controller="AdicionarController">
    				<div class="form-group">
    					<label class="col-sm-2 control-label">Adicionar acidentado:</label>
    					<div class="col-sm-10">
    						<input type="button" class="btn btn-success" ng-click="AdicionarCampos()" name="adicionarAcidentado" value="+">
    					</div>
    				</div>
    				<div id="maisCampos">
    					
    				</div>
    			</span>
    			
    
    			<p><span class="vermelho">*</span> campos de preenchimento obrigatório</p>
    			<div class="form-group">
    				<label class="col-sm-2 control-label">&nbsp;</label>
    				<div class="col-sm-10">
    					<input type="submit" class="btn btn-success" name="cadastrar" ng-disabled="acidenteForm.$invalid" value="Enviar">
    				</div>
    			</div>
    		</form>
    	</div>
    	<script src="<?php echo base_url(); ?>js/angular.min.js"></script>
    	<script src="<?php echo base_url(); ?>js/acidente.js"></script>
    </div>

     

    acidente.js

    var app = angular.module('acidente', []);
    app.directive('diaAcidente', function() {
        return { 
            require: 'ngModel',
            link: function(scope, element, attr, mCtrl) {
                function myValidation(value) {
                    if (value > 0 && value < 32) {
                        mCtrl.$setValidity('charE', true);
                    } else {
                        mCtrl.$setValidity('charE', false);
                    }
                    return value;
                }
                mCtrl.$parsers.push(myValidation);
            }
        };
    });
     var adicionar = []; 
     var i = 0;
    app.controller('AdicionarController', function($scope) {
    	$scope.AdicionarCampos = function () {
            ordinal = i+1;
            adicionar.push('<p><strong>'+ordinal+'º acidentado</strong></p>');
            adicionar.push('<div class="form-group"><label class="col-sm-2 control-label">Matrícula:</label><div class="col-sm-10"><input type="number" name="matriculaform'+i+'" class="form-control"></div></div>');
            adicionar.push('<div class="form-group"><label class="col-sm-2 control-label">Previsão de Alta<span class="vermelho">*</span>:</label><div class="col-sm-10"><input type="date" name="previsaoform'+i+'" id="previsaoform'+i+'" class="form-control" required ng-model="previsaoform'+i+'">&nbsp;&nbsp;<span class="vermelho" ng-show="acidenteForm.previsaoform'+i+'.$invalid && acidenteForm.previsaoform'+i+'.$dirty">Favor informar a previsao da alta.</span></div></div>');
            document.getElementById("maisCampos").innerHTML = adicionar;
            i = i + 1;
        };
    });

     

     


  10. Estou tentando fazer uma aplicação em angularjs mas quando adiciono o controller da sempre esse erro:

     

    Uncaught Error: [$injector:modulerr] 

     

    Abaixo minha aplicação:

    HTML

    <div class="row"  ng-app="acidenteApp">
    	<div class="col-sm-12"  ng-controller="AcidenteController">
    	<p> teste de funcionamento {{1+1}}</p>
    		<h2>Cadastrar Acidente</h2>
    		<p><?php echo '<strong>'.$mensal->__get('empresa').'</strong> - '.$mensal->__get('mes').'/'.$mensal->__get('ano'); ?></p>
    		<?php echo form_open('../CadastrarAcidente/'.$mensal->__get('idMensal'), array('class'=>"form-horizontal", 'name'=>'formAcidente', 'id'=>'formAcidente')); ?>
    		<div class="form-group">
    			<label class="col-sm-2 control-label">Dia do Acidente:</label>
    			<div class="col-sm-10">
    				<?php echo form_input(array('type'=>"number", 'class'=>"form-control", 'name'=>'diaform','id'=>'diaform'), set_value('diaform')); ?>
    				<p class="help-block">O dia é obrigatório</p>
    			</div>
    		</div>
    		<div class="form-group">
    			<label class="col-sm-2 control-label">Descrição do Acidente:</label>
    			<div class="col-sm-10">
    				<?php echo form_textarea(array('class'=>"form-control", 'name'=>'descricaoform','id'=>'descricaoform'), set_value('descricaoform')); ?>
    			</div>
    		</div>
    		<div class="form-group">
    			<label class="col-sm-2 control-label">Recomendações/Ações Após o Acidente:</label>
    			<div class="col-sm-10">
    				<?php echo form_textarea(array('class'=>"form-control", 'name'=>'recomendacaoform','id'=>'recomendacaoform'), set_value('recomendacaoform')); ?>
    			</div>
    		</div>
    		<div class="form-group">
    			<label class="col-sm-2 control-label">Adicionar acidentado:</label>
    			<div class="col-sm-10">
    				<?php echo form_button(array('name'=>'adicionarAcidentado','id'=>'adicionarAcidentado'), "+"); ?>
    			</div>
    		</div>
    		<div class="form-group">
    			<div class="col-sm-offset-2 col-sm-10">
    				<?php echo form_button(array('name'=>'cadastrar', 'ng-disabled'=>'formAcidente.$invalid'),"Cadastrar"); ?>
    			</div>
    		</div>
    		<p><?php echo $erro; ?></p>
    	</div>
    	<script src="<?php echo base_url(); ?>js/angular.min.js"></script>
    	<script src="<?php echo base_url(); ?>js/acidente.js"></script>
    </div>

    Abaixo o arquivo javascript acidente.js

     

    // criar angular app
    var acidenteApp = angular.module('acidenteApp', []);
    
    acidenteApp.controller('AcidenteController', function AcidenteController($scope) {
      console.log('teste');
    });

     


  11. Em casa utilizo o xampp e na instalação padrão dele ele não diferencia maiúsculas de minúsculas ao colocar um endereço, no entanto, ao subir o site para o servidor ele faz a diferenciação e alguns endereços acabam por não funcionar.

     

    Então queria mudar a configuração do meu PC (XAMPP) para que eu pudesse detectar esses erros na edição, evitando surpresas ao subir o site.

     

    Exemplo:

    www.meuendereco.com/umaPagina funciona igual a www.meuendereco.com/umapagina no meu PC, mas no servidor da erro.

     

    Como altero essa configuração no servidor?


  12. Fiz uma classe no PHP Codeigniter mas ela só não está funcionando com a variável 'idUsuario'. Alguma explicação? Existem algumas palavras que são restritas no CodeIgniter? Resolvi alterando a variável para public e chamando ela diretamente. exemplo: echo $pessoa->idUsuario.

     

    Outro dia tive um problema parecido com a palavra 'data'. Resolvi alterando o nome mas está muito esquisito esses erros. Será que alguém tem alguma explicação?

     

    Abaixo a classe:

     

    class Usuario extends CI_Model {
    	public $idUsuario;
    	private $usuario;
    	private $email;
    	private $senha;
    	private $nivel;
    	
    	public function __construct ($idUsuario=NULL, $usuario=NULL, $email=NULL, $senha=NULL, $nivel=NULL) {
    		parent::__construct();
    		$this->idUsuario = $idUsuario;
    		$this->usuario = $usuario;
    		$this->email = $email;
    		$this->senha = $senha;
    		$this->nivel = $nivel;
    		
    	}	
    	public function __get($nome) {
            switch (strtolower($nome)){
                case 'idUsuario': echo "foi";
                    return $this->idUsuario;
                case 'usuario':
                    return $this->usuario;
                case 'email': 
                    return $this->email;
                case 'senha': 
                    return $this->senha;
                case 'nivel': 
                    return $this->nivel;
            }
        }
        public function __set($nome, $valor) {
            switch (strtolower($nome)){
                case 'idUsuario':
                    $this->idUsuario = $valor;
                case 'usuario':
                    $this->usuario = $valor;
                case 'email':
                    $this->email = $valor;
                case 'senha':
                    $this->senha = $valor;
                case 'nivel':
                    $this->nivel = $valor;
            }
        }
    }

     


  13. Já tentei mudar diversas vezes o caminho da pasta. Já tentei colocar o caminho completo, colocar apenas uma pasta na raiz, dentro da aplicação, enfim, de várias formas mas não ia.

     

    Algum mistério tem que não consigo salvar o arquivo. Estou pesquisando uma outra forma de fazer isso.


  14. Sim o form_validation está carregado.

     

    Quanto ao erro o único erro que ele dá é esse:

     

    Citar

    A PHP Error was encountered

    Severity: Notice

    Message: Undefined variable: imagem

    Filename: controllers/Noticias.php

    Line Number: 101

     

    onde a linha 101 = a esta: $noticia->__set('imagem', $imagem['urlArquivo']);

×

Important Information

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