Ir para conteúdo

POWERED BY:

Arquivado

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

Arthur74

Upload de 2 imagens gera dois posts PHP PDO

Recommended Posts

Boa galera, estou com uma duvida, procurei em muitos sites e muitos tópicos, mais não consegui achar realmente oque preciso, não sou muito bom na área de back-end, e estou precisando de ajuda, estou criando uma pagina em PDP (com formulário) para upar para o banco de dados atributos normais de uma postagem, como titulo, data, ano, descrição, "IMAGEM" e etc.
porém preciso que no formulário tenha mais um input para upload de imagem, pois a intenção é de gerar para cada post duas imagens, seria algo como, uma imagem principal, e uma que apareceria apenas em uma "modal", o problema é que quando crio mais um input, e publico o post com as duas imagens, ele replica a postagem, e cada uma fica com uma imagem, o código que possuo, foi copiado de um tutorial PHP com PDO.

PHP >>

<?php
  if(isset($_POST['cadastrar'])){
	  	$titulo 	= trim(strip_tags($_POST['titulo']));
		$data 		= trim(strip_tags($_POST['data']));
		$exibir 	= trim(strip_tags($_POST['exibir']));
		$descricao 	= $_POST['descricao'];
		
		
		//INFO IMAGEM
		$file 		= $_FILES['img'];
		$numFile	= count(array_filter($file['name']));
		
		//PASTA
		$folder		= '../upload/postagens/';
		
		//REQUISITOS
		$permite 	= array('image/jpeg', 'image/png');
		$maxSize	= 1024 * 1024 * 5;
		
		//MENSAGENS
		$msg		= array();
		$errorMsg	= array(
			1 => 'O arquivo no upload é maior do que o limite definido em upload_max_filesize no php.ini.',
			2 => 'O arquivo ultrapassa o limite de tamanho em MAX_FILE_SIZE que foi especificado no formulário HTML',
			3 => 'o upload do arquivo foi feito parcialmente',
			4 => 'Não foi feito o upload do arquivo'
		);
		
		if($numFile <= 0){
			echo '<div class="alert alert-danger">
						<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
						Selecione pelo menos 1 imagem para galeria!
					</div>';
		}
		else if($numFile >=3){
			echo '<div class="alert alert-danger">
						<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
						Você ultrapassou o limite de upload. Selecione apenas 2 imagem!
					</div>';
		}else{
			for($i = 0; $i < $numFile; $i++){
				$name 	= $file['name'][$i];
				$type	= $file['type'][$i];
				$size	= $file['size'][$i];
				$error	= $file['error'][$i];
				$tmp	= $file['tmp_name'][$i];
				
				$extensao = @end(explode('.', $name));
				$novoNome = rand().".$extensao";
				
				if($error != 0)
					$msg[] = "<b>$name :</b> ".$errorMsg[$error];
				else if(!in_array($type, $permite))
					$msg[] = "<b>$name :</b> Erro imagem não suportada!";
				else if($size > $maxSize)
					$msg[] = "<b>$name :</b> Erro imagem ultrapassa o limite de 5MB";
				else{
					
					if(move_uploaded_file($tmp, $folder.'/'.$novoNome)){
						//$msg[] = "<b>$name :</b> Upload Realizado com Sucesso!";
						
					$insert = "INSERT into tb_postagens (titulo, data, imagem, imagem2, exibir, descricao) VALUES (:titulo, :data, :imagem, :imagem2, :exibir, :descricao)";
		
	try{
		$result = $conexao->prepare($insert);
		$result->bindParam(':titulo', $titulo, PDO::PARAM_STR);
		$result->bindParam(':data', $data, PDO::PARAM_STR);
		$result->bindParam(':imagem', $novoNome, PDO::PARAM_STR);
		$result->bindParam(':imagem2', $novoNome, PDO::PARAM_STR);
		$result->bindParam(':exibir', $exibir, PDO::PARAM_STR);
		$result->bindParam(':descricao', $descricao, PDO::PARAM_STR);
		$result->execute();
		$contar = $result->rowCount();
		if($contar>0){
			echo '<div class="alert alert-success">
					<button type="button" class="close" data-dismiss="alert">×</button>
					<strong>Atenção!</strong> Artigo postado com sucesso!
				</div>';
		}else{
			echo '<div class="alert alert-danger">
					<button type="button" class="close" data-dismiss="alert">x</button>
					<strong>Atenção!</strong> Falha na postagem do artigo!
				</div>';
		}
	}catch(PDOException $e){
		echo $e;
	}
			
					}else
						$msg[] = "<b>$name :</b> Desculpe! Ocorreu um erro...";
				
				}
				
				foreach($msg as $pop)
				echo '';
					//echo $pop.'<br>';
			}
		}		
  }
 ?>	      	 

HTML >>

<form id="edit-profile" class="form-horizontal" action="" method="post" enctype="multipart/form-data">
                                
	<div class="control-group">
                <label class="control-label" for="username">Título</label>			<div class="controls">
		      <input type="text" class="span6 disabled" id="titulo" value="" name="titulo">
                 </div> <!-- /controls -->				
	</div> <!-- /control-group -->
										
										
	<div class="control-group">							     <label class="control-label" for="firstname">Data</label>			     <div class="controls">									<input type="text" class="span2" id="date" value="" name="data">	     </div> <!-- /controls -->				
	</div> <!-- /control-group -->
										
										
	<div class="control-group">							      <label class="control-label" for="lastname">Imagem</label>
              <div class="controls">						                       <input type="file" class="span6 fileinput" id="imagem" value="" name="img[]">										      </div> <!-- /controls -->				
	</div> <!-- /control-group -->
                                        
                                        
	<div class="control-group">							        <label class="control-label" for="lastname">Imagem2</label>			<div class="controls">
                       <input type="file" class="span6 fileinput" id="imagem2" value="" name="img[]">									        </div> <!-- /controls -->				
	</div> <!-- /control-group -->
										
                                        
	<div class="control-group">							       <label class="control-label" for="username">Exibir</label>	                  <div class="controls">								       <select class="span1" id="exibir" name="exibir">
                               <option>Sim</option>
                               <option>Não</option>
                       </select>
		</div> <!-- /controls -->				
	</div> <!-- /control-group -->
                                        
                                        
	<div class="control-group">							       <label class="control-label" for="email">Descrição</label>		       <div class="controls">									<textarea class="span8" name="descricao" id="descricao" value="" rows="10"></textarea>								       </div> <!-- /controls -->				
	</div> <!-- /control-group -->
                                        
                                        
        <div class="form-actions">
		<input type="submit" name="cadastrar" class="btn btn-primary" value="Salvar">
                <input type="reset" class="btn" value="Cancelar">			</div>
                                            
</form> 

oque preciso é apenas que o segundo input upe mais uma imagem, e que ela fique armazenada na id imagem2!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está gerando 2 registros pois está dentro do for, você deve retirar a parte em que você faz o cadastro de dentro do laço, já que ele só será usado para fazer o upload.

 

Também deverá corrigir isto:

$result->bindParam(':imagem', $novoNome, PDO::PARAM_STR);
$result->bindParam(':imagem2', $novoNome, PDO::PARAM_STR);

Pois os dois campos estão salvando o mesmo nome de imagem ($novoNome).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está gerando 2 registros pois está dentro do for, você deve retirar a parte em que você faz o cadastro de dentro do laço, já que ele só será usado para fazer o upload.

 

Também deverá corrigir isto:

$result->bindParam(':imagem', $novoNome, PDO::PARAM_STR);
$result->bindParam(':imagem2', $novoNome, PDO::PARAM_STR);
Pois os dois campos estão salvando o mesmo nome de imagem ($novoNome).

 

Tem como explicar um pouco mais? porque eu não entendi especificamente qual parte retirar do for e onde colar, entendi que esta criando os dois campos com o mesmo nome, porem preciso de ajuda para conseguir arrumar as linhas:

$extensao = @end(explode('.', $name));
$novoNome = rand().".$extensao";

pois "elas" que criam o nome aleatório da imagem.

 

ainda estou muito confuso :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver da seguinte forma:

<?php
  if(isset($_POST['cadastrar'])){
	  	$titulo 	= trim(strip_tags($_POST['titulo']));
		$data 		= trim(strip_tags($_POST['data']));
		$exibir 	= trim(strip_tags($_POST['exibir']));
		$descricao 	= $_POST['descricao'];
		

		$diretorio = "../upload/postagens/";


		if (!is_dir($diretorio)){ echo "Pasta $diretorio não existe";}
		
		else { echo "A Pasta Existe<br>";
		
		$backmodal = isset($_FILES['backmodal']) ? $_FILES['backmodal'] : FALSE;
                
                    for ($i = 0; $i < count($backmodal['name']); $i++)
                        {
                           $extensao = @end(explode('.', $backmodal['name'][$i]));
							$newName = rand().".$extensao";

                            if (move_uploaded_file($backmodal['tmp_name'][$i], $diretorio.'/'.$newName)) {echo "MOVEUUUUUU<br>";
							
							}
                                    
                            else {echo "NAOOOO MOVEU";}
                        } 
						
				$capa = isset($_FILES['capa']) ? $_FILES['capa'] : FALSE;
                
                    for ($k = 0; $k < count($capa['name']); $k++)
                        {
						   
						   	$extensao = @end(explode('.', $capa['name'][$k]));
							$novoNome = rand().".$extensao";

                            if (move_uploaded_file($capa['tmp_name'][$k], $diretorio.'/'.$novoNome)) {echo "MOVEUUUUUU<br>";
						
								$insert = "INSERT into tb_postagens (titulo, data, exibir, imagem, imagem2, descricao) VALUES (:titulo, :data, :exibir, :imagem, :imagem2, :descricao)";
		
	try{
		$result = $conexao->prepare($insert);
		$result->bindParam(':titulo', $titulo, PDO::PARAM_STR);
		$result->bindParam(':data', $data, PDO::PARAM_STR);
		$result->bindParam(':exibir', $exibir, PDO::PARAM_STR);
		$result->bindParam(':imagem', $novoNome, PDO::PARAM_STR);
		$result->bindParam(':imagem2', $newName, PDO::PARAM_STR);
		$result->bindParam(':descricao', $descricao, PDO::PARAM_STR);
		$result->execute();
		$contar = $result->rowCount();
		if($contar>0){
			echo '<div class="alert alert-success">
					<button type="button" class="close" data-dismiss="alert">×</button>
					<strong>Atenção!</strong> Artigo postado com sucesso!
				</div>';
		}else{
			echo '<div class="alert alert-danger">
					<button type="button" class="close" data-dismiss="alert">x</button>
					<strong>Atenção!</strong> Falha na postagem do artigo!
				</div>';
		}
	}catch(PDOException $e){
		echo $e;
	}
	
	
	
								}
                                    
                            else {echo "NAOOOO MOVEU";}
                        }

} // fecha else
	
	
	
	}
 ?>	  

Criei dois campos, um para cada imagem, mudei a forma como lê as configurações de cada imagem, e inseri o INSERT dentro apenas do script da segunda imagem!

 

na tabela os campos tem a seguinte configuração:

id - AUTO INCREMENT

titulo - VARCHAR - 255

data - VARCHAR - 255

imagem - VARCHAR - 255

imagem2 - VARCHAR - 255

exibir - VARCHAR - 255

descricao - VARCHAR - 255

 

O Form ficou assim:

<form id="edit-profile" class="form-horizontal" action="" method="post" enctype="multipart/form-data">
                                
                                
 	
                                
										<div class="control-group">											
											<label class="control-label" for="username">Título</label>
											<div class="controls">
												<input type="text" class="span6 disabled" id="titulo" value="" name="titulo">
											</div> <!-- /controls -->				
										</div> <!-- /control-group -->
										
										
										<div class="control-group">											
											<label class="control-label" for="firstname">Data</label>
											<div class="controls">
												<input type="text" class="span2" id="date" value="" name="data">
											</div> <!-- /controls -->				
										</div> <!-- /control-group -->
										
										
										<div class="control-group">											
											<label class="control-label" for="lastname">Imagem</label>
											<div class="controls">
												<input type="file" class="span6 fileinput" id="imagem" value="" name="capa[]">
											</div> <!-- /controls -->				
										</div> <!-- /control-group -->
                                        
                                        
										<div class="control-group">											
											<label class="control-label" for="lastname">Imagem2</label>
											<div class="controls">
												<input type="file" class="span6 fileinput" id="imagem2" value="" name="backmodal[]">
											</div> <!-- /controls -->				
										</div> <!-- /control-group -->
										
                                        
										<div class="control-group">											
											<label class="control-label" for="username">Exibir</label>
											<div class="controls">
												<select class="span1" id="exibir" name="exibir">
                                                	<option>Sim</option>
                                                    <option>Não</option>
                                                </select>
											</div> <!-- /controls -->				
										</div> <!-- /control-group -->
                                        
                                        
										<div class="control-group">											
											<label class="control-label" for="email">Descrição</label>
											<div class="controls">
												<textarea class="span8" name="descricao" id="descricao" value="" rows="10"></textarea>
											</div> <!-- /controls -->				
										</div> <!-- /control-group -->
                                        
                                        
                                        <div class="form-actions">
												<input type="submit" name="cadastrar" class="btn btn-primary" value="Salvar">
                                                <input type="reset" class="btn" value="Cancelar">
											</div>
                                            
								</form>

Para fazer o update eu resolvi assim:

<?php
	//RECUPERA DADOS
	if(!isset($_GET['id'])){ header("location: LINK DA PAGINA"); exit;}
	$id = $_GET['id'];
	$select = "SELECT * from tb_postagens WHERE id=:id";
		$contagem =1;
		try{
			$result = $conexao->prepare($select);
			$result->bindParam('id', $id, PDO::PARAM_INT);
			$result->execute();
			$contar = $result->rowCount();
			if($contar>0){
				while($mostra = $result->FETCH(PDO::FETCH_OBJ)){
					$idpost = $mostra->id;
					$titulo = $mostra->titulo;
					$data = $mostra->data;
					$imagem = $mostra->imagem;
					$imagem2 = $mostra->imagem2;
					$exibir = $mostra->exibir;
					$descricao = $mostra->descricao;
				}
			}else{
				echo '<div class="alert alert-danger">
					  	<button type="button" class="close" data-dismiss="alert">×</button>
					  	<h4>Atenção!</h4>
					  	Nenhum dado encontrado!
					  </div>';exit;
			}
			
		}catch(PDOException $e){
			echo $e;
		}				
					
					
				
				
				
		$novoNome = $imagem;
		$newName = $imagem2;
	
	//atualizar
	if(isset($_POST['atualizar'])){
	  	$titulo 	= trim(strip_tags($_POST['titulo']));
		$data 		= trim(strip_tags($_POST['data']));
		$exibir 	= trim(strip_tags($_POST['exibir']));
		$descricao 	= $_POST['descricao'];
		
		
		
			if(!empty($_FILES['capa']['name'])){
						
			$diretorio = "../upload/postagens/";
	
	
			if (!is_dir($diretorio)){ echo "Pasta $diretorio não existe";}
			
				else { echo "A Pasta Existe<br>";
				
				$capa = isset($_FILES['capa']) ? $_FILES['capa'] : FALSE;
						
							for ($i = 0; $i < count($capa['name']); $i++)
								{
								   $extensao = @end(explode('.', $capa['name'][$i]));
									$novoNome = rand().".$extensao";
		
									if (move_uploaded_file($capa['tmp_name'][$i], $diretorio.'/'.$novoNome)) {echo "MOVEUUUUUU<br>";
								
									$arquivo = "../upload/postagens/" .$imagem;
									unlink($arquivo);
								
								}
									else {echo $novoNome = $imagem;}
								}
				}
			}
			
			
		
			if(!empty($_FILES['backmodal']['name'])){
			$diretorio = "../upload/postagens/";
	
	
			if (!is_dir($diretorio)){ echo "Pasta $diretorio não existe";}
			
			else { echo "A Pasta Existe<br>";
			
			$backmodal = isset($_FILES['backmodal']) ? $_FILES['backmodal'] : FALSE;
					
						for ($i = 0; $i < count($backmodal['name']); $i++)
							{
							   $extensao = @end(explode('.', $backmodal['name'][$i]));
								$newName = rand().".$extensao";
	
								if (move_uploaded_file($backmodal['tmp_name'][$i], $diretorio.'/'.$newName)) {echo "MOVEUUUUUU<br>";
								
								
								$arquivo = "../upload/postagens/" .$imagem2;
								unlink($arquivo);
								
							}
								else {echo $newName = $imagem2;}
							}
			}
			}
	
					$update = "UPDATE tb_postagens SET titulo=:titulo, data=:data, imagem=:imagem, imagem2=:imagem2, exibir=:exibir, descricao=:descricao WHERE id=:id";
		
	try{
		$result = $conexao->prepare($update);
		$result->bindParam(':id', $id, PDO::PARAM_INT);
		$result->bindParam(':titulo', $titulo, PDO::PARAM_STR);
		$result->bindParam(':data', $data, PDO::PARAM_STR);
		$result->bindParam(':imagem', $novoNome, PDO::PARAM_STR);
		$result->bindParam(':imagem2', $newName, PDO::PARAM_STR);
		$result->bindParam(':exibir', $exibir, PDO::PARAM_STR);
		$result->bindParam(':descricao', $descricao, PDO::PARAM_STR);
		$result->execute();
		$contar = $result->rowCount();
		if($contar>0){
			echo '<div class="alert alert-success">
					<button type="button" class="close" data-dismiss="alert">×</button>
					<strong>Atenção!</strong> Artigo atualizado com sucesso!
				</div>';
		}else{
			echo '<div class="alert alert-danger">
					<button type="button" class="close" data-dismiss="alert">x</button>
					<strong>Atenção!</strong> Falha na atualização do artigo!
				</div>';
		}
	}catch(PDOException $e){
		echo $e;
	}	
  }
 ?>

Com o form:

<form id="edit-profile" class="form-horizontal" action="" method="post" enctype="multipart/form-data">
                                
										<div class="control-group">											
											<label class="control-label" for="username">Título</label>
											<div class="controls">
												<input type="text" class="span6 disabled" id="titulo" value="<?php echo $titulo; ?>" name="titulo">
											</div> <!-- /controls -->				
										</div> <!-- /control-group -->
										
										
										<div class="control-group">											
											<label class="control-label" for="firstname">Data</label>
											<div class="controls">
												<input type="text" class="span2" id="date" value="<?php echo $data; ?>" name="data">
											</div> <!-- /controls -->				
										</div> <!-- /control-group -->
										
										
										<div class="control-group">											
											<label class="control-label" for="lastname">Imagem</label>
											<div class="controls">
												<input type="file" class="span6 fileinput" id="imagem" value="" name="capa[]">
                                                <img src="../upload/postagens/<?php echo $novoNome;?>" width="50"/>
											</div> <!-- /controls -->				
										</div> <!-- /control-group -->
                                        
                                        <div class="control-group">											
											<label class="control-label" for="lastname">Imagem2</label>
											<div class="controls">
												<input type="file" class="span6 fileinput" id="imagem2" value="" name="backmodal[]">
                                                <img src="../upload/postagens/<?php echo $newName;?>" width="50"/>
											</div> <!-- /controls -->				
										</div> <!-- /control-group -->
										
                                        
										<div class="control-group">											
											<label class="control-label" for="username">Exibir</label>
											<div class="controls">
												<select class="span1" id="exibir" name="exibir">
                                                	<option selected><?php echo $exibir; ?></option>
                                                	<?php if($exibir!='Sim'){echo '<option>Sim</option>';}?>
                                                    <?php if($exibir!='Não'){echo '<option>Não</option>';}?>
                                                </select>
											</div> <!-- /controls -->				
										</div> <!-- /control-group -->
                                        
                                        
										<div class="control-group">											
											<label class="control-label" for="email">Descrição</label>
											<div class="controls">
												<textarea class="span8" name="descricao" id="descricao" value="" rows="10"><?php echo $descricao; ?></textarea>
											</div> <!-- /controls -->				
										</div> <!-- /control-group -->
                                        
                                        
                                        <div class="form-actions">
												<input type="submit" name="atualizar" class="btn btn-primary" value="Atualizar">
                                                <input type="reset" class="btn" value="Cancelar">
											</div>
                                            
								</form>

A base de tudo foi em uma serie de videos sobre php com pdo desse canal , espero que ajude a galera com dificuldade como eu estava!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • 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
×

Informação importante

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