Jump to content

Search the Community

Showing results for tags 'OO'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 17 results

  1. LuanMartinsTI

    Existe perigo ao criar uma funcao assim

    Eu gostaria de saber se existe algum problema relacionado a seguranca criando uma funcao assim, no exemplo sempre que eu crio uma funcao pre reutilizar os dados sao passados direto na chamada da funcao dentro do php, o usuario nao insere nenhum dado, quando o usuario vai inserir dados eu nao trabalho dessa forma, entao minha duvida [e, se mesmo o parametro da funcao sendo informado dentro do php no codigo pode existir algum problema. public function contar_cadastro($tabela, $sql){ try { if($sql == null){ $this->Select = $this->Conn->prepare("SELECT * FROM $tabela"); $this->Select->execute(); return $this->Select->rowCount(); }else{ $this->Select = $this->Conn->prepare("SELECT * FROM $tabela". " " ." $sql"); $this->Select->execute(); return $this->Select->rowCount(); } } catch (PDOException $exc) { exibeMensagens($Msg, $ErrNo); } } E as chamadas das funcoes assim $cmsPDO = new CmsPDO(); $r_userStaff = $cmsPDO->contar_cadastro('usuarios', ' where cargo > 2'); $r_userVip = $cmsPDO->contar_cadastro('usuarios', ' where cargo = 2'); $r_userBan = $cmsPDO->contar_cadastro('usuarios', " where ban = '1'"); $r_usuarioPDO = $cmsPDO->contar_cadastro('usuarios', null); $r_servVip = $cmsPDO->contar_cadastro('servidores', " where vipfree = 'V'"); $r_servFree = $cmsPDO->contar_cadastro('servidores', " where vipfree = 'F'"); $r_servInat = $cmsPDO->contar_cadastro('servidores', " where verificado = '1'"); $r_servOff = $cmsPDO->contar_cadastro('servidores', " where estado = 'Off'"); $r_servOn = $cmsPDO->contar_cadastro('servidores', " where estado = 'On'"); $r_servidores = $cmsPDO->contar_cadastro('servidores', null); Eu normalmente crio as funcoes assim: public function cadastrar_usuario($usuario){ try { if($this->veriricarnick($usuario) == false){ if($this->verificiarEmail($usuario) == false){ $query = 'INSERT INTO usuarios ' . '(id, nome, senha, email, cargo, ip)' . 'value(null,:nome, :senha, :email, :cargo, :ip)'; $this->Criar = $this->Conn->prepare($query); $this->Criar->bindValue(':nome' , $usuario->getNome() , PDO::PARAM_STR); $this->Criar->bindValue(':senha' , $usuario->getSenha(), PDO::PARAM_STR); $this->Criar->bindValue(':email' , $usuario->getEmail(), PDO::PARAM_STR); $this->Criar->bindValue(':cargo' , $usuario->getCargo(), PDO::PARAM_INT); $this->Criar->bindValue(':ip' , $usuario->getIp() , PDO::PARAM_STR); $this->Criar->execute(); if($this->Criar->rowCount() == 1){ return 1; }else{ return false; } }else{ return false; } }else{ return false; } } catch (PDOException $exc) { exibeMensagens("<b> Erro ao inserir.</b> Mensagem:{$exc->getMessage()} Código: {$exc->getCode()}", WS_ERROR); } }
  2. Olá, sou iniciante em php OO, estou com uma dúvida e gostaria que alguém me ajudasse, preciso saber como eu faço pra chamar uma função "private estatic" que está eu outra classe, quando ela está na mesma classe eu consigo chamar usando o self::, mas em outra classe o self:: não funciona, como seria a forma correta? No Código abaixo eu preciso chamar a função conectaBanco(), através de outra classe. class Conexao{ private static $host = "localhost"; private static $dbname = "aluno"; private static $usuario = "root"; private static $senha = ""; private static $banco = null; private static function conectaBanco(){ try { self::$banco = new PDO('mysql:host=' . self::$host . ';dbname=' . self::$dbname, self::$usuario, self::$senha); return self::$banco; }catch (Exception $e) { echo "Mensagem de Erro:" . $e->getMessage() . '<br>'; echo "Linha do Erro:" . $e->getLine(); } } public function getBanco(){ return self::conectaBanco(); } }
  3. Rodrigo5468

    Validação em PDO OOP

    Boa tarde a todos. Estou desenvolvendo um sistema de registro para fins de estudos, mas tenho algumas dúvidas e dificuldades até. Estou usando "programação orientada a objetos", e quero validar alguns campos do meu registro, se puderem me auxiliar, será de grande ajuda. Meu Diretório: Projeto1/ ├── backend/ │ ├── classes/ │ │ ├── Register.php ├── index.php Em Register.php tenho o seguinte código para fazer a validação, mas acredito que estou fazendo algo de errado. public function setUsername($username) { $sql = "SELECT * FROM $this->table WHERE username = :username"; $stmt = Database::prepare($sql); $stmt->execute(array('username' => $_POST["username"])); if(empty($_POST["username"])) { return "O campo usuário não pode ser vázio."; }elseif(ctype_space($_POST["username"])) { return "Não pode usar apenas espaços no campo de usuário."; }elseif(strlen($_POST["username"] < 3)) { return "É necessário no mínimo 3 (três) caracteres no usuário."; }elseif(strlen($_POST["username"] > 15)) { return "O máximo é de 15 (quinze) caracteres no usuário."; }elseif(preg_match("/^[a-zA-Z0-9]*$/", $_POST["username"] == 0)) { return "O nome de usuário só pode conter letras e números. (sem espaços e sem caracteres epeciais)"; }elseif($stmt->num_rows !== 0) { return "O nome de usuário já está cadastrado em nossos bancos de dados."; }else { $this->username = $username; } } E no index.php tenho o seguinte código, acredito que está certo, mas eu gostaria de mostrar as mensagens de erros que estão no Register.php, como que posso fazer isso? $register = new Registers(); if(isset($_POST["cadastrar"])) { $username = $_POST["username"]; $email = $_POST["email"]; $password = $_POST["password"]; $register->setUsername($username); $register->setEmail($email); $register->setPassword($password); if($register->insert()) { return "Usuário cadastrado com sucesso."; } } Obrigado pela atenção!
  4. rnicson

    Selecionar de acordo com usuário

    Possuo um script que seleciona Eventos de acordo com o dia,porém quero implementar uma condição que selecione de acordo com uma coluna que criei chamada user. <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Event; use MaddHatter\LaravelFullcalendar\Facades\Calendar; class EventController extends Controller { public function index() { $events = []; $data = Event::all(); if($data->count()) { foreach ($data as $key => $value) { $events[] = Calendar::event( $value->title, true, new \DateTime($value->start_date), new \DateTime($value->end_date.' +1 day'), null, // Add color and link on event [ 'color' => '#ff0000', 'url' => 'pass here url and any route', ] ); } } $calendar = Calendar::addEvents($events); return view('home', compact('calendar')); } } Minha dúvida seria onde se encaixa essa condição? where user = ...
  5. Estou com dificuldades em entender quando um determinado trecho de código deve ser repetido em mais de uma classe afim de manter a independência da mesma, pois segundo artigos que leio sobre orientação a objetos - Um Objeto (classe) deve ser independente o suficiente para ser utilizada sem dependências. - Ter apenas uma funcionalidade, desempenhando apenas o seu papel (coesão). Meu sistema é foi criado para vendas de comerciais, onde cada bloco/horário tem um preço diferente, calculado com base no preço médio + acréscimos - descontos. O objetivo (funcionalidade ou papel) da classe VendasController é retornar para View Orcamentos, informações sobre produtos e valores para realização de um orçamento e posteriormente um contrato. Para retornar essas informações eu obtenho o preço médio de cada bloco e adiciono os acréscimos em alguns métodos dentro desta classe, ela tem o funcionamento independente. Agora estou desenvolvendo outra classe que se chama DistribuicoesController, onde a sua funcionalidade é distribuir uma quantidade X de comerciais no blocos/horários disponiveis, e uma de suas opções seriam distribuir no blocos com menor custo médio. Portanto a questão aqui é: Tanto na Classe VendasController como na classe DistribuicoesController eu faço uso de preço médio dos blocos. Qual seria o mais correto: eu repetir o código nas duas classes, fazer tudo dentro de uma unica classe, criar uma "super classe" e usa-la estendida dentro das classes VendasController e DistribuicoesController.
  6. gust.php

    PHP OO Duvidas

    Olá galera... Acho que o meu problema é mais relacionado a OO que PHP.... Eu tenho a seguinte estrutura: Motorista, Veiculo e uma terceira tabela MOTORISTA_VEICULO que faz o relacionamento das 2 classes. Acredito que esta seja a maneira correta, pois nem todo motorista tem um carro relacionado. Meu problema esta aqui: Quando quero pegar uma informação do carro pelo motorista eu consigo: $motorista->getVeiculo()->getPlaca(); // OK, tenho a placa do carro Agora, se eu quiser pegar alguma informação do carro pelo motorista não funciona: $veiculo->getMotorista()->getNome(); // Fatal error: Call to undefined method Doctrine\ORM\PersistentCollection::getNome() in Minhas classe: MOTORISTA /** * @ORM\ManyToMany(targetEntity="Veiculo", cascade={"merge"}) * @ORM\JoinTable(name="MOTORISTA_VEICULO", * joinColumns={@ORM\JoinColumn(name="MOTO_IDMOTORISTA", referencedColumnName="IDMOTORISTA")}, * inverseJoinColumns={@ORM\JoinColumn(name="MOTO_IDVEICULO", referencedColumnName="IDCAR", unique=true)} * ) */ private $veiculo; public function __construct() { parent::__construct(); $this->veiculo = new \Doctrine\Common\Collections\ArrayCollection(); } function getVeiculo() { return $this->veiculo; } function setVeiculo($veiculo) { $this->veiculo[] = $veiculo; } VEICULO ** * * @ORM\ManyToMany(targetEntity="Motorista", mappedBy="veiculo") */ private $motorista; function getMotorista() { return $this->motorista; } function setMotorista($motorista) { $this->motorista = $motorista; } public function __construct() { $this->motorista = new \Doctrine\Common\Collections\ArrayCollection(); }
  7. Rodrigo5468

    Verificar campos e DB

    Olá, Estou fazendo um sistema de cadastro em PDO OO. Cadastro.php public function insert() { if(isset($usuario) && isset($nomesobrenome) && isset($email) && isset($senha)) { if(empty($usuario) OR empty($nomesobrenome) OR empty($email) OR empty($senha)) { echo 'Existe campos vazios.</div>'; } }else { $verifica = DB::prepare("SELECT * FROM {$this->table} WHERE usuario=:usuario OR nomesobrenome=:nomesobrenome OR email=:email"); $verifica->bindValue(':usuario',$this->usuario,PDO::PARAM_STR); $verifica->bindValue(':nomesobrenome',$this->nomesobrenome,PDO::PARAM_STR); $verifica->bindValue(':email',$this->email,PDO::PARAM_STR); $verifica->execute(); if($verifica->rowCount() == 0) { $sql = "INSERT INTO $this->table (usuario, nomesobrenome, email, senha) VALUES (:usuario, :nomesobrenome, :email, :senha)"; $stmt = DB::prepare($sql); $stmt->bindParam(':usuario', $this->usuario); $stmt->bindParam(':nomesobrenome', $this->nomesobrenome); $stmt->bindParam(':email', $this->email); $stmt->bindParam(':senha', $this->senha); return $stmt->execute(); }else { return false; } } } register.php <?php $usuarios = new Usuarios(); if(isset($_POST['cadastrar'])) { $usuario = $_POST['usuario']; $nomesobrenome = $_POST['nomesobrenome']; $email = $_POST['email']; $senha = $_POST['senha']; $usuarios->setUsuario($usuario); $usuarios->setNomesobrenome($nomesobrenome); $usuarios->setEmail($email); $usuarios->setSenha($senha); #Insert if($usuarios->insert()) { echo 'Conta registrada com sucesso! Você deverá confirmar a conta em seu endereço de e-mail.</div>'; } } ?> Quando eu registro a conta aparece a seguinte frase "Conta registrada com sucesso! Você deverá confirmar a conta em seu endereço de e-mail.". Mas já existe um cadastro no banco de dados não aparece nenhum erro, informando que já existe o usuário, o nome e sobrenome ou o e-mail. E quando existe campos vazios o script cadastra a conta do mesmo jeito. O que preciso mudar para corrigir o meu código? Obrigado desde já.
  8. Olá! Cenário: Tenho uma classe NotaFiscal que tem um relacionamento com vários outros objetos, como Cliente, Fornecedor, Produtos e etc, sendo que estes objetos ligados diretamente ainda tem seus relacionamentos com outros objetos. Objetivo: Apresentar uma lista de notas fiscais quem contém poucos dados, como número da nota, nome do cliente e valor total. Dúvida: Recuperar o objeto NotaFiscal e todas as suas relações em um banco de dados, por exemplo, não seria um grande problema de desempenho, visto que preciso de poucos dados? Me parece um erro obter apenas as notas sem suas relações e um exagero obter tudo.
  9. Boa tarde! Desculpe, caso seja um tema básico, pois estou entrando no mundo do PHP OO agora. Criei uma classe que teria umas quantidade grande de atributos e com os gets e sets, o netbeans começou alertar que a classe deveria ter no máximo 200 linha. Em uma consulta com o objetivo de diminuir, encontrei os métodos __get e __set e surgiu algumas dúvidas: Apesar de ter toda a estrutura, isto seria mesmo Orientação a Objeto? Não seria o mesmo que tornar os atributos publico, uma vez que você chama "$classe->atributo"? O melhor caminho não seria, refatorar a classe em classes menores ou esta é um boa pratica de programação? O que acontece com os recursos de autocompletar, tem com ativá-los? Obrigado.
  10. Rodrigo5468

    Validação

    Olá, boa noite à todos! Estou tendo algumas dificuldades em achar a melhor forma possível de validar um formulário, um cadastro... Irei deixar aqui logo abaixo o exemplo de como estou usando em teste, está funcionando mas não tenho certeza se é o método certo. <?php public function insert() { if(isset($usuario) && isset($nomesobrenome) && isset($email) && isset($senha)) { if(empty($usuario) OR empty($nomesobrenome) OR empty($email) OR empty($senha)) { echo 'Há campos vazios.'; } }else { $verifica = DB::prepare("SELECT * FROM {$this->table} WHERE usuario=:usuario OR nomesobrenome=:nomesobrenome OR email=:email"); $verifica->bindValue(':usuario',$this->usuario,PDO::PARAM_STR); $verifica->bindValue(':nomesobrenome',$this->nomesobrenome,PDO::PARAM_STR); $verifica->bindValue(':email',$this->email,PDO::PARAM_STR); $verifica->execute(); if($verifica->rowCount() == 0) { $sql = "INSERT INTO $this->table (usuario, nomesobrenome, email, senha) VALUES (:usuario, :nomesobrenome, :email, :senha)"; $stmt = DB::prepare($sql); $stmt->bindParam(':usuario', $this->usuario); $stmt->bindParam(':nomesobrenome', $this->nomesobrenome); $stmt->bindParam(':email', $this->email); $stmt->bindParam(':senha', $this->senha); return $stmt->execute(); }else { return false; } } } Estou estudando OO e PDO. Neste formulário existe 4 campos e, um adicional que é os termos, um checkbox. Eu quero verificar os seguintes campos. Usuário, Nome, E-mail Se não existir dados iguais em cada campo ele concede a permissão para enviar ao banco de dados, se não o script mostra os erros na tela do usuário. Li alguns artigos no Google, encontrei um que entendi melhor, ele pediu para criar uma variável. //Cria uma variável que terá os dados do erro $erro = false; //Verifica se o POST tem algum valor if(!isset($_POST) || empty($_POST )) { $erro = 'Nada foi postado.'; } //Cria as variáveis dinamicamente foreach($_POST as $chave => $valor) { //Remove todas as tags HTML //Remove os espaços em branco do valor $$chave = trim(strip_tags($valor)); //Verifica se tem algum valor nulo if(empty($valor)) { $erro = 'Existem campos em branco.'; } } //Verifica se $email realmente existe e se é um email. //Também verifica se não existe nenhum erro anterior if((!isset($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) && !$erro) { $erro = 'Envie um email válido.'; } //Se existir algum erro, mostra o erro if($erro) { echo $erro; }else{ //Se a variável erro continuar com valor falso //Você pode fazer o que preferir aqui, por exemplo, //enviar para a base de dados, ou enviar um email //Tanto faz. Vou apenas exibir os dados na tela. echo "<h1>Veja os dados enviados</h1>"; foreach($_POST as $chave => $valor) { echo '<b>' . $chave . '</b>: ' . $valor . '<br><br>'; } } A partir disso eu preciso criar os famosos "if", até aí tudo bem, mas como eu coloco no meu script? Fiz algumas tentativas e não conseguir. Poderiam me auxiliar neste assunto?
  11. Olá pessoa, sou novo aqui no forum e estou precisando de uma ajuda no seguinte problema: O problema Tenho um site no padrão MVC e estou tentando colocar ele hospedado em uma máquina virtual para que eu possa fazer alterações antes de subir ele para o servidor. Quando migrei o site para máquina virtual ao instanciar a classe indexController (página inicial do site) ele simplesmente não faz nada e "printa" na tela o código fonte da classe a partir do método init(). O servidor e a máquina virtual são Debian 8.6. Utilizo PHP 5.6. Medidas já feitas: - Atualizei o sistema e seus modulos (utilizando apt-get update); - Alterei o dono dos arquivos para www-data (usuário do apache); - Alterei as permissões de acesso do diretório do apache no arquivo apache2.conf ; - Dei permissão de escrita, leitura e tal para todos os arquivos do site. Considerações Ao listar os arquivos incluídos (include_once) ele aparece o meu arquivo desejado (/var/www/application/Controller/indexController.php) Estou sem saber o que fazer, aguardo respostas.
  12. Olá, é o seguinte: Eu tenho um cliente que me pediu um sistema onde ele tem a lista de emails do newsletter e ele quer enviar um email para todos de uma só vez, meio que como funciona com e-mail marketing, até aí tudo ok, mil maravilhas, o problema é: e se ele mudar de página, fechar a aba ou o navegador ? Obviamente o script para de rodar. A ideia é que o navegador não fique esperando uma resposta para continuar, simplesmente ele dá o comando e dá uma mensagem ao usuário de que os e-mails estão sendo enviados, o servidor vai executar, enviar e-mail por e-mail e posteriormente vai gerar um log (até ai ok). Ou seja, o que eu preciso é que o script de envio dos emails rode no background do servidor, que o servidor seja responsável por enviar os emails e não o usuário propriamente dito, sendo assim o usuário pode trocar de página, fechar o navegador, desligar o computador, que o sistema vai enviar email por email e quando o usuário entrar novamente, caso já tenha sido finalizado, o sistema mostra pra ele quais foram enviados e se algum teve problema. Na empresa onde trabalho temos um sistema parecido com esse, como o sistema faz comunicação com várias API's ao mesmo tempo, se tivesse que ficar esperando uma resposta ia demorar muito, então, foi feito exatamente o que eu disse a cima, o usuário não vê o script rodando, ele só recebe uma mensagem genérica, essa parte do sistema não fui eu quem fez, então não consegui entender muito bem, eu sei que foi usado o comando exec() e acho que rola algum comando no terminal do linux. Ficou grande a explicação mas acho que deu pra entender, conseguem me ajudar com uma ideia pra solucionar isso ?
  13. Michel Frade

    Ajuda com Métodos Get & Set

    Pessoal, boa tarde. Estou com a seguinte dúvida, eu tenho uma classe com um atributo, métodos get e set, e dois outros métodos, eu tento usar o set no primeiro método e o get no segundo, mas não me retorna nada, pra ser mais claro vou mostrar um script genérico, simples de entender. <?php class Exemplo{ private $atributo; public function setAtributo($atributo){ $this->atributo = $atributo; } public function getAtributo(){ return $this->atributo; } public function metodoA(){ $this->setAtributo("Valor Qualquer"); } public function metodoB(){ return $this->getAtributo(); } } E tento recuperar o dado em outra página com o seguinte código: <?php include_once 'teste.class.php'; $obj = new Exemplo(); echo $obj->metodoB(); Mas não retorna nada. Alguem sabe o que se passa? Eu só consigo retornar na outra página se eu fizer o set e o get no mesmo métodoB...to achando que tem algo a ver com escopo.
  14. RedHot66

    Usando Classe Abstrata de Conexão BD

    Pessoal, tava pesquisando na internet como fazer algumas conexões em Banco de Dados no PHP Orientado a Objeto e me deparei com esse script desse site http://www.linhadecodigo.com.br/artigo/3461/pdo-em-php-orientado-a-objetos.aspx. Reparei que a Conexao é uma classe abstrata e nunca usei nada do tipo no PHP, pois to começando a estudar isso agora... Gostaria de saber como poderia utilizar esse script ? Imaginem que esse arquivo chama conexao.class.php e tenho outro arquivo chamado index.php onde vou realizar todas minhas operações no BD...
  15. Ola, estou programando uma enquete em PDO, conforme uma video aula que estou assistindo no youtube. Já escrevi todo o código da aula e ocorreu uma falha, de acordo com o que está programado quando ocorrer erro, ele avisa em mensagem, "Ops ocorreu algum erro, nao foi possivel criar a sua enquete" . Enfim estou testando e está retornando este erro, somente as respostas não estão sendo cadastradas, a pergunta está sendo cadastrada no banco normalmente, será que algum colega poderia olhar e ver se consegue visualizar o erro do script. Segue o código abaixo. Obrigado a quem puder ajudar. Enquete.class.php <?php class Enquete{ private $id; private $pergunta; private $resposta = array(); private $status; public function criarPergunta(Perguntas $objeto){ $this->pergunta = $objeto; } public function criarRespostas(Respostas $objeto){ $this->resposta[] = $objeto; } public function setId($id){ $this->id = (int)$id; } public function getId(){ return $this->id; } public function setStatus($status){ $this->status = strip_tags($status); } public function getStatus(){ return $this->status; } public function getPergunta(){ return $this->pergunta->getPergunta(); } public function getRespostas(){ return $this->resposta; } } ?>
  16. wneo

    PHP OO como fazer while

    Olá pessoal, estou aprendendo Orientação a objetos com PHP. Gostaria de uma ajuda para entender algumas coisas... Por exemplo, como faço para que o while execute a repetição de um html? Com esse código: insert.php <?php class conexao{ private $servidor = ""; private $login = ""; private $senha = ""; private $banco = ""; private $conn; public function conexao(){ $this->conn = mysql_connect($this->servidor,$this->login,$this->senha); mysql_select_db( $this->banco, $this->conn ); } public function selecionar(){ $sql = 'SELECT * FROM table'; $rs = mysql_query( $sql, $this->conn ); while($row=mysql_fetch_object($rs)){ /* laço */ } } } $conn = new conexao(); $conn->selecionar(); view.html <div class="box"> </div> Acima tenho um código OO para fazer o select e o laço, e outro html para a visualização ao usuário. No aquivo view.html, tenho uma classe chamada box. Gostaria que esse box estivesse naquele laço de repetição. Proceduralmente sei fazer. Gostaria de ajuda para fazer em OO. Obtendo uma abstração entre php e html. Se alguém já usou Template Power, poderia ajudar dando um exemplo com essa tecnica, caso não saibam o que é, não tem problema, pode ajudar como sabem, mas tentando abstrair ao máximo o view do insert, sem ter que colocar divs dentro do while....
  17. Nerdmonkey

    Página dinâmica

    Bom dia a todos. Estou criando páginas dinâmicas para meus sistemas de forma que possa alimentá-las de acordo com a url. Meu problema é na edição de dados onde não estou sabendo ao certo como resgatar os valores pelo id do registro e compará-los para manter os valores nos campos. Está tudo muito simples, mas funciona legal A página de edição <?php // Get params from url $id = filter_input(INPUT_GET,'id',FILTER_VALIDATE_INT); $filter = filter_input(INPUT_GET,'filter',FILTER_VALIDATE_INT); $type = filter_input(INPUT_GET,'type',FILTER_DEFAULT); $url = filter_input(INPUT_GET,'url',FILTER_DEFAULT); $pageActual = filter_input(INPUT_GET, 'atual', FILTER_VALIDATE_INT); // Objects $viewCad = new ViewCadControl($type,$id); $funcoes = new Valid; ?> <section class="content"> <header class="header-pages"> <hgroup class="left"> <h1>Edição de <?= ucwords($type); ?></h1> <h2>Você está em modo de edição, as alterações feitas aqui, são aplicadas imediatamente sobre o módulo ativo.</h2> </hgroup> </header> <article> <?php foreach($viewCad->geteEditData() as $r): echo 'Hi, i\'m a column of table. My name is: ' . $r . '<br>'; endforeach; echo '<pre>'; var_dump($viewCad->geteEditData()); echo '</pre>'; ?> <form id="frms-edit-<?= $funcoes->retira_acentos(utf8_decode($type)); ?>" class="valid_ajax_form frms"> <input type="hidden" name="action" value="insert-new-<?= $funcoes->retira_acentos(utf8_decode($type)); ?>"> <?php foreach($viewCad->getDataFromTable() as $fields): if($fields->Field != 'id' && $fields->Field != 'data'): ?> <!-- Select para clientes --> <?php if($fields->Field == 'id_cliente'): ?> <label> <strong>Cliente</strong> <select name="id_cliente" id="id_cliente"> <option value="0">Selecione</option> <?php $read->ExeRead('sis_clientes','id,nome,sobrenome','WHERE status = :status', "status=1"); if($read->getResult()): foreach($read->getResult() as $result): ?> <option value="<?= $result->id; ?>" <?php /*if($viewCad->geteEditData()['id_cliente'] == $result->id): echo 'selected'; endif;*/?>><?= $result->nome . ' ' . $result->sobrenome; ?></option> <?php endforeach; else: ?> <option value="0">Nenhum cliente disponível</option> <?php endif; ?> </select> </label> <!-- Select para clientes --> <?php elseif($fields->Field == 'id_servico'): ?> <label> <strong>Serviço relacionado</strong> <select name="id_servico" id="id_servico"> <option value="0">Selecione</option> <?php $read->ExeRead('sis_servicos','id,nome','WHERE status = :status', "status=1"); if($read->getResult()): foreach($read->getResult() as $result): ?> <option value="<?= $result->id; ?>"><?= $result->nome; ?></option> <?php endforeach; else: ?> <option value="0">Nenhum serviço disponível</option> <?php endif; ?> </select> </label> <!-- Select para status do registro --> <?php elseif($fields->Field == 'status'): ?> <label> <strong>Status</strong> <select name="status" id="status"> <option value="0">Selecione</option> <option value="1">Ativo</option> <option value="2">Inativo</option> </select> </label> <!-- Select para status de aprovação do registro --> <?php elseif($fields->Field == 'aprovado'): ?> <label> <strong>Aprovado</strong> <select name="status" id="status"> <option value="0">Selecione</option> <option value="1">Sim</option> <option value="2">Não</option> </select> </label> <!-- Select para definir se é parcelado ou não --> <?php elseif($fields->Field == 'parcelado'): ?> <label> <strong>Parcelado</strong> <select name="parcelado" id="parcelado"> <option value="0">Selecione</option> <option value="1">Sim</option> <option value="2">Não</option> </select> </label> <!-- Máscara campos real --> <?php elseif($fields->Field == 'valor' || $fields->Field == 'preco' || $fields->Field == 'v_parcelas'): ?> <label> <strong><?= ucfirst(preg_replace('/_/i',' ', $fields->Field)); ?></strong> <input type="text" class="preco" name="<?= $fields->Field; ?>" id="<?= $fields->Field; ?>"> </label> <!-- Input type data --> <?php elseif($fields->Field == 'data' || $fields->Field == 'previsao' || $fields->Field == 'data_inicio' || $fields->Field == 'data_fim'): ?> <label> <strong><?= ucfirst(preg_replace('/_/i',' ', $fields->Field)); ?></strong> <input type="text" class="datas" name="<?= $fields->Field; ?>" id="<?= $fields->Field; ?>"> </label> <!-- Input type cep --> <?php elseif($fields->Field == 'cep'): ?> <label> <strong><?= ucfirst(preg_replace('/_/i',' ', $fields->Field)); ?></strong> <input type="text" class="cep" name="<?= $fields->Field; ?>" id="<?= $fields->Field; ?>"> </label> <!-- Input type cnpj --> <?php elseif($fields->Field == 'cnpj'): ?> <label> <strong><?= ucfirst(preg_replace('/_/i',' ', $fields->Field)); ?></strong> <input type="text" class="cnpj" name="<?= $fields->Field; ?>" id="<?= $fields->Field; ?>"> </label> <!-- Input type cpf --> <?php elseif($fields->Field == 'cpf'): ?> <label> <strong><?= ucfirst(preg_replace('/_/i',' ', $fields->Field)); ?></strong> <input type="text" class="cpf" name="<?= $fields->Field; ?>" id="<?= $fields->Field; ?>"> </label> <?php else: ?> <label> <strong><?= ucfirst(preg_replace('/_/i',' ', $fields->Field)); ?></strong> <input type="text" name="<?= $fields->Field; ?>" id="<?= $fields->Field; ?>"> </label> <?php endif; endif; endforeach; ?> <button class="submit btn">Salvar alterações em <b><?= ucwords(substr($type, 0, strrpos($type, 's'))); ?></b></button> <a href="relatorios?type=<?= $type; ?>">Voltar para listagem de <b><?= ucwords($type); ?></b></a> </form> </article> </section> A classe <?php /** * * */ class ViewCadControl { /** * * */ private $table; /** * * */ private $results; /** * * @param string $table */ public function __construct($table, $id = null) { $this->table = 'sis_' . $table; $this->id = $id; } /** * * */ public function getDataFromTable() { $read = new Read; $read->FullRead("SHOW COLUMNS FROM {$this->table}"); if($read->getResult()): $this->results = $read->getResult(); endif; return $this->results; } /** * */ public function geteEditData() { $read = new Read; $read->ExeRead($this->table, '*', 'WHERE id = :id LIMIT 1', "id={$this->id}"); if($read->getResult()): foreach($read->getResult() as $results): $this->results = $results; return $this->results; endforeach; endif; } } Minha dúvida é como persistir os dados. Já tentei englobar com o foreach, as me parece bem feio e além do mais não funciona, porque entra em outro loop e duplica os campos do formulário. Preciso de algumas dicas que talvez a minha ansiedade pelo fato de ter que ir ao dentista não me deixa ver claramente. O debug[incluso na view] <?php foreach($viewCad->geteEditData() as $r): echo 'Hi, i\'m a column of table. My name is: ' . $r . '<br>'; endforeach; echo '<pre>'; var_dump($viewCad->geteEditData()); echo '</pre>'; ?> Retorna [code] Hi, i'm a column of table. My name is: 1 Hi, i'm a column of table. My name is: Clientes Hi, i'm a column of table. My name is: clientes Hi, i'm a column of table. My name is: 0 Hi, i'm a column of table. My name is: 1 object(stdClass)#19 (5) { ["id"]=> string(1) "1" ["nome"]=> string(8) "Clientes" ["url"]=> string(8) "clientes" ["type"]=> string(1) "0" ["status"]=> string(1) "1" }
×

Important Information

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