Ir para conteúdo

POWERED BY:

Arquivado

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

gramosiri2

Editar tabela com valor correspondente <select>

Recommended Posts

Gente me da um help, tenho um formulário para editar os dados da tabela, está funcionando normalmente. Porém ao carregar a pagina está buscando o último nome da tabela.

Gostaria de saber um jeito de quando carregar a página, já venha selecionado o valor correspondente ao dado daquela tabela.

 

Por exemplo, cadastrei 3 cargos: Auxiliar, Adm e Técnico. Dai cadastrei um funcionário com o cargo de Adm, quando carrega a pagina de editar ele já vem selecionado o ultimo valor, no caso Técnico e não o de Adm...

 

<label class="badge badge-secondary">Cargo:</label><br>
  <select class="form-control" name="cargo_id">
    <?php 
    while($linha = mysqli_fetch_array($consulta_cargo)){
      echo '<option value="'.$linha['id_cargo'].'" selected>'.$linha['nome_cargo'].'</option>';
    }
    ?>
</select><br><br>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, gramosiri2 disse:

<label class="badge badge-secondary">Cargo:</label><br> <select class="form-control" name="cargo_id"> <?php while($linha = mysqli_fetch_array($consulta_cargo)){ echo '<option value="'.$linha['id_cargo'].'" selected>'.$linha['nome_cargo'].'</option>'; } ?> </select><br><br>

 

Boa noite 

Eu uso sempre assim

<div class="col-md-6">
	<div class="form-group">
<label>Cargos:</label>
	<select class="form-control" name="id_categoria">
<?php $Query = DBRead('cargos','*',"WHERE status = 'S' AND id order by nome ASC"); if (is_array($Query)) 
{ foreach ($Query as $c_cargos) { ?>
	<option value="<?php echo $c_cargos['id']; ?>" <?php Selected($dados['id_categoria'], $c_cargos['id']); ?>><?php echo $c_cargos['nome']; ?></option>
									            	
<?php } } ?>
	</select>
	</div>
</div>

Ou tente desta forma

O que muda é apenas a forma da programação

<div class="col-md-6">
	<div class="form-group">
<label>Cargos:</label>
	<select class="form-control" name="cargo_id">
     <?php $con = new mysqli("localhost", "root", "senha","bancodedados" ) or die (mysql_error());
$query = $con->query("SELECT * FROM cargos");                                            
  while($c_cargos = $query->fetch_array()) {
	                                   ?>
<option value="<?php echo $c_cargos['id']; ?>" <?php Selected($dados['cargo_id'], $c_cargos['id']); ?>><?php echo $c_cargos['nome']; ?></option>
									            	
<?php } ?>
	</select>
	</div>
</div>

Espero ter lhe ajudado...

Compartilhar este post


Link para o post
Compartilhar em outros sites
16 horas atrás, Jack Oliveira disse:

 

Boa noite 

Eu uso sempre assim


<div class="col-md-6">
	<div class="form-group">
<label>Cargos:</label>
	<select class="form-control" name="id_categoria">
<?php $Query = DBRead('cargos','*',"WHERE status = 'S' AND id order by nome ASC"); if (is_array($Query)) 
{ foreach ($Query as $c_cargos) { ?>
	<option value="<?php echo $c_cargos['id']; ?>" <?php Selected($dados['id_categoria'], $c_cargos['id']); ?>><?php echo $c_cargos['nome']; ?></option>
									            	
<?php } } ?>
	</select>
	</div>
</div>

Ou tente desta forma

O que muda é apenas a forma da programação


<div class="col-md-6">
	<div class="form-group">
<label>Cargos:</label>
	<select class="form-control" name="cargo_id">
     <?php $con = new mysqli("localhost", "root", "senha","bancodedados" ) or die (mysql_error());
$query = $con->query("SELECT * FROM cargos");                                            
  while($c_cargos = $query->fetch_array()) {
	                                   ?>
<option value="<?php echo $c_cargos['id']; ?>" <?php Selected($dados['cargo_id'], $c_cargos['id']); ?>><?php echo $c_cargos['nome']; ?></option>
									            	
<?php } ?>
	</select>
	</div>
</div>

Espero ter lhe ajudado...

 

@Jack Oliveira fiz os testes aqui, porém retornou esse erro de sintaxe:

 

Parse error: syntax error, unexpected '$c_cargos' (T_VARIABLE), expecting ',' or ';' in C:\xampp\htdocs\lista_frigo\views\inserir_func.php on line 95

 

OBS*: Usei o segundo código que postou...

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, gramosiri2 disse:

 

@Jack Oliveira fiz os testes aqui, porém retornou esse erro de sintaxe:

 

Parse error: syntax error, unexpected '$c_cargos' (T_VARIABLE), expecting ',' or ';' in C:\xampp\htdocs\lista_frigo\views\inserir_func.php on line 95

 

OBS*: Usei o segundo código que postou...

Veja este aqui... qualquer coisa poste seu código completo e o Banco de dados

<?php
	$servidor = "localhost";
	$usuario = "root";
	$senha = "";
	$dbname = "teste";
	
	//Criar a conexao
	$conn = mysqli_connect($servidor, $usuario, $senha, $dbname);
	
	if(!$conn){
		die("Falha na conexao: " . mysqli_connect_error());
	}else{
		//echo "Conexao realizada com sucesso";
	}	
	
?>

Cadastro.php

 

<?php
	include_once("conexao.php");
?>
<!DOCTYPE html>
<html>
	<head>
		<title> Cadastro</title>
		<meta charset="utf-8">
	</head>
	</body>
		<form method="POST" action="processa_cad_usuario.php">
			Nome: <input type="text" name="txt_nome_usuario" placeholder="Digite o nome completo"><br><br>
			E-mail: <input type="email" name="txt_email_usuario" placeholder="Digite o Email"><br><br>
			Senha: <input type="password" name="txt_senha_usuario" placeholder="Digite a senha"><br><br>
			Níveis de Acesso: 
				<select name="select_niveis_acesso">
					<option>Selecione</option>
					<?php
						$result_cargos = "SELECT * FROM cargos";
						$resultado_cargos = mysqli_query($conn, $result_cargos);
						while($row_cargos = mysqli_fetch_assoc($resultado_cargos)){ ?>
							<option value="<?php echo $row_cargos['id']; ?>"><?php echo $row_cargos['nome']; ?></option> <?php
						}
					?>
				</select><br><br>
			<input type="submit" value="Cadastrar">
		</form>
	</body>
</html>

cadastros_usuario.php

 

<?php
	include_once("conexao.php");
	$nome_usuario = $_POST['txt_nome_usuario'];
	$txt_email_usuario = $_POST['txt_email_usuario'];
	$txt_senha_usuario = $_POST['txt_senha_usuario'];
	$select_niveis_acesso = $_POST['select_niveis_acesso'];
	
	//echo "$nome_usuario - $email_usuario";
	
	$result_usuario = "INSERT INTO usuarios(nome, email, senha, niveis_acesso_id, created) VALUES ('$nome_usuario','$txt_email_usuario', '$txt_senha_usuario', '$select_niveis_acesso', NOW())";
	$resultado_usuario = mysqli_query($conn, $result_usuario);
	
	if(mysqli_affected_rows($conn) != 0){
				echo "
					<META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://localhost/usuario/cadastro.php'>
					<script type=\"text/javascript\">
						alert(\"Usuario cadastrado com Sucesso.\");
					</script>
				";	
			}else{
				echo "
					<META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://localhost/usuario/cadastro.php'>
					<script type=\"text/javascript\">
						alert(\"O Usuario não foi cadastrado com Sucesso.\");
					</script>
				";	
			}
?>

Banco de dados

-- phpMyAdmin SQL Dump
-- version 4.1.14
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Mar 31, 2016 at 04:09 AM
-- Server version: 5.6.17
-- PHP Version: 5.5.12

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `teste`
--

-- --------------------------------------------------------

--
-- Table structure for table `cargos`
--

CREATE TABLE IF NOT EXISTS `cargos` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(50) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Dumping data for table `cargos`
--

INSERT INTO `cargos` (`id`, `nome`, `created`, `modified`) VALUES
(1, 'Administrador', '2016-03-25 00:00:00', NULL),
(2, 'Colaborador', '2016-03-25 00:00:00', NULL),
(3, 'Cliente', '2016-03-25 00:00:00', '2016-03-27 20:26:18'),
(4, 'Fornecedor', '2016-03-27 20:12:03', '2016-03-27 20:18:11');

-- --------------------------------------------------------

--
-- Table structure for table `usuarios`
--

CREATE TABLE IF NOT EXISTS `usuarios` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(240) NOT NULL,
  `email` varchar(240) NOT NULL,
  `senha` varchar(240) NOT NULL,
  `niveis_acesso_id` int(11) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

--
-- Dumping data for table `usuarios`
--

INSERT INTO `usuarios` (`id`, `nome`, `email`, `senha`, `niveis_acesso_id`, `created`, `modified`) VALUES
(1, 'Admin', 'admin@teste.com.br', '202cb962ac59075b964b07152d234b70', 1, '2016-03-25 01:01:01', NULL),
(2, 'Teste', 'teste@teste.com.br', '202cb962ac59075b964b07152d234b70', 1, '2016-03-25 02:02:02', '2016-03-27 19:22:38'),
(3, 'Demo', 'demo@teste.com.br', '202cb962ac59075b964b07152d234b70', 3, '2016-03-25 03:03:33', NULL),
(4, 'Demo1', 'demo1@teste.com.br', '202cb962ac59075b964b07152d234b70', 1, '2016-03-25 22:50:38', NULL);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Toda vez que o loop faz a volta ele escreve a opção com os dados de acordo com os valores obtidos naquela volta.

Então é simples, bastando fazer uma comparação se o que vai ser escrito na volta atual condiz com o valor que você queira que seja selecionado.

echo "<option value=\"{$linha['id_cargo']}\" ". ($linha['id_cargo'] == $comparar ? 'selected' : null) .">{$linha['nome_cargo']}</option>";

$linha['id_cargo'] == $comparar

Ou seja se na volta atual id_cargo for igual ao $comparar irá escrever a atual opção como selecionado.

Essa variável $comparar você terá que definir ela fora do laço de repetição sendo seu valor o mesmo que será transcrito como selecionado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, Omar~ disse:

Toda vez que o loop faz a volta ele escreve a opção com os dados de acordo com os valores obtidos naquela volta.

Então é simples, bastando fazer uma comparação se o que vai ser escrito na volta atual condiz com o valor que você queira que seja selecionado.


echo "<option value=\"{$linha['id_cargo']}\" ". ($linha['id_cargo'] == $comparar ? 'selected' : null) .">{$linha['nome_cargo']}</option>";

$linha['id_cargo'] == $comparar

Ou seja se na volta atual id_cargo for igual ao $comparar irá escrever a atual opção como selecionado.

Essa variável $comparar você terá que definir ela fora do laço de repetição sendo seu valor o mesmo que será transcrito como selecionado.

@Omar~ no caso a variavel comparar vai receber os valores de [cargo_id] que faz relacionamento com o id_cargo?

 

Fiz assim mas não funcionou...

    <?php 
    $comprar = mysqli_fetch_array($consulta_func);
    while($linha = mysqli_fetch_array($consulta_cargo)){
      /*echo '<option name="cargo_id" id="cargo_id">'.$linha['nome_cargo'].'</option>';*/

      echo "<option value=\"{$linha['id_cargo']}\" ". ($linha['id_cargo'] == $comparar['cargo_id'] ? 'selected' : null) .">{$linha['nome_cargo']}</option>";
    }
    /*echo '<option></option>';*/
    ?>

 

Sem título2.png

Sem título.png

Compartilhar este post


Link para o post
Compartilhar em outros sites
7 horas atrás, gramosiri2 disse:

no caso a variavel comparar vai receber os valores de [cargo_id] que faz relacionamento com o id_cargo?

Sim... Digamos que o usuário X tem seu ID 3, logo a comparação será feita com isso.

 

Eu sugiro que você armazene esse ID do usuário em uma sessão durante o login.

Então ao acessar essa página você faz a comparação dos dados no loop "no caso id_cargo" é o mesmo da sessão daquele usuário.

 

Seria o mesmo que um debug desses

$comparar = 3;
$voltas_no_loop = 0;
while ($linha = mysqli_fetch_array($consulta_cargo)) {
    $voltas_no_loop++;
    echo 'Volta atual: ' . $voltas_no_loop . ' / ' . ($linha['id_cargo'] == $comparar ? "Sim esse é o ID: {$comparar}" : "Não é o id: {$comparar}") . '<br />';
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera, tudo certo?
       
      Seguinte: No servidor A estou tentando fazer uma consulta com o servidor B, mas está dando erro.
      Estou usando o mesmo código de conexão do servidor B que funciona perfeitamente, mas no servidor A, dá erro.
      Segue código:
       
      $host = 'servidor B';
      $user = 'user';
      $pass = '********';
      $db   = 'banco';
       
      // conexão e seleção do banco de dados
      $conexao = mysqlI_connect($host, $user, $pass, $db);
      mysqlI_set_charset($conexao,"utf8");
      //print "Conexão rodando e OK!"; 
      //mysqlI_close($conexao);
       
      Alguém pode me ajudar?
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.