Ir para conteúdo

POWERED BY:

Arquivado

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

Eduardo_555

Criando função onclick ?

Recommended Posts

Olá pessoal bom dia!!

Estou criando uma pagina onde tenho uma lista com links na lateral, cada link que o usuário clica altera o um a variável id.

no lado desta lista tenho um input que vai cadastrar uma mensagem no banco de dados, o funcionamento é o mesmo do whatsap web, na lista temos os contatos e no lado um formulário e as mensagens já enviadas.

estou usando o Framework codeigniter php para ajudar no desenvolvimento.

seria assim cada vês que clico no link lateral gostaria que fizesse um onclick, que enviasse o dado para um input do formulário que ficara hidenn. porem isso não funciona acredito que seja pelo codeigniter ja que tenho que colocar o chamado da função onclick dentro de um anchor vou postar oque ja fis para vocês derem uma olhada aguardo um help ai!!

Esta é a função javascript

function preencher(value)
{
	var resultado = document.getElementById('cliente');
	resultado.value += " " + value;
}

Este a lista onde clico e seleciono o id

<li><?= anchor("Redirecionador/encontraEventos/{$cliente['id']}", "$exibicao", array('onclick'=>'$variavelid'))?><li>

e aqui o formulario que tenho que colocar o valor retornado pela função javascript

<?php

					echo form_open("Cadastro/Acontecimentos");
					echo form_input(array(
						"name"=>"acontecimento",
						"id"=>"acontecimento",
						"class"=>"form-control",
						"placeholder"=>"Informe um evento relacionado a este cliente!",
						"type"=>"text",
						));
					echo form_input(array(
						"name"=>"cliente",
						"id"=>"cliente",
						"class"=>"form-control",
						"type"=>"hidden",

						));
				?>

não funciona de jeito maneira, oque sera que esta errado

Agradeço desde já!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual é o html que o fw gera desse anchor?

o que aparece no console de erros? Ctrl + Shift + J? no Firefox ou Chrome

Compartilhar este post


Link para o post
Compartilhar em outros sites

Html 5

não aparece erro nenhum no console, mas fis um teste, se eu coloco um valor manual tipo um numero ele passa para a função e da um alert como configurei para testar, agora se mando a variável ele simplesmente ignora e nem executa o alert.

a variável não esta vazia posso garantir isso pq depois deste processo dou um insert no banco e esta indo certinho os outros campos menos este.

não posso passar uma variável php como parâmetro para função?

Compartilhar este post


Link para o post
Compartilhar em outros sites

depende de como está o html gerado.

veja ele apertando Ctrl + U no teu browser (Exibir -> Código Fonte). Apenas tendo certeza do que está sendo impresso é que poderemos entender o que tá acontecendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
<li><a href="/aprorganizador/index.php/Redirecionador/encontraEventos/13" onclick="preencher($idFormulario)">fulano</a><li>

Alinha do onclick apareceu assim, parece que ele nao esta interpretando a varial $idFormulario estou certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exato! por isso que eu disse que você precisava ver o html.

troca:

<li><?= anchor("Redirecionador/encontraEventos/{$cliente['id']}", "$exibicao", array('onclick'=>'$variavelid'))?><li>
por

<li><?= anchor("Redirecionador/encontraEventos/{$cliente['id']}", "$exibicao", array('onclick'=>$idFormulario))?><li>

Compartilhar este post


Link para o post
Compartilhar em outros sites
<li><a href="/aprorganizador/index.php/Redirecionador/encontraEventos/12" onclick="12">fulano</a><li>

Blz agora funcionou apareceu o valor, o problema é que desta forma não chama a função preencher certo?

Até porque ele não faz nada só preenche os valores. certo?

tipo nao teria que chamar a função

prencher(colocar a variavel por parâmetro)?

Compartilhar este post


Link para o post
Compartilhar em outros sites
<li><a href="/aprorganizador/index.php/Redirecionador/encontraEventos/12" onclick="12">fulano</a><li>

Blz agora funcionou apareceu o valor, o problema é que desta forma não chama a função preencher certo?

Até porque ele não faz nada só preenche os valores. certo?

tipo nao teria que chamar a função

prencher(colocar a variavel por parâmetro)?

Não teria que ficar assim para chamar a função corretamente?

<li><a href="/aprorganizador/index.php/Redirecionador/encontraEventos/13" onclick="prencher('13')">fulano</a><li>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, não precisa das aspas.. porque é um inteiro.

se você colocar aspas simples, o php não vai entender que aquilo é uma variável e vai imprimir como string.

deveria ficar entre parênteses sim. Se não for possível pelo teu framework, faça o html na mão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pse este problema ficou resolvido porem agora descobri que tenho outro,

só para você entender o contexto tenho a lista lateral quando clico nela, alem de dar esse onclick realizo uma busca no banco de dados com php, então realizo um refresh na pagina, agora acontece o seguinte

eu clico ele executa o onclick(deixei o form visível e realmente funciona)

porem logo em seguida ele da um refresh e o input fica vazio novamente.

tem alguma maneira de eu inverter as ordens de execução, ou então armazenar este valor mesmo com o refresh.

ou sera que vou ter que fazer a chamada da função que realiza a busca no bd com javascrip?e como fasso isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode não fazer o refresh?

porque sempre que você fizer, você vai ter que buscar tudo novamente.. pois o js vai perder o estado da memória e ser reiniciado.

para o js trazer os dados do banco, você tem que usar ajax (assim o teu server-side devolver os dados para o js).

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK pensei da seguinte maneira então,

já que eu fasso refresh e essa parte não irei mudar pois teria que mexer em uma boa parte do código

acho que quando a pagina recarrega vou tentar já chamar a função e preencher o valor sem usar o onclick,

pois o id que preciso e buscado do banco e fica presente em uma variavel na pagina carregada sempre que recarrega ele atualiza o id.

pensei em fazer assim porem ainda não esta funcionando(pra variar!!)

echo "<script type='text/javascript'>
 preencher('$idFormulario');
</script>

chamar minha função como se fosse um echo do php e então passo a variavel como parâmetro, o grande problema esta em qual local eu coloco este código, pois obviamente possuo uma lista com mais de um dado nela, então se eu coloco em um for ele vai preencher diversos valores no input, e se eu coloco fora do for ele pega somente o ultimo valor buscado no banco.

Como sera que resolvo esta?

aqui mais um pouco do código para um melhor entendimento da duvida!

<?php
 foreach($clientes as $cliente){
 $exibicao = $cliente['nome'];
 $idFormulario = $cliente['id'];
				  		
?>	
  <li><?= anchor("Redirecionador/encontraEventos/{$cliente['id']}", "$exibicao")?><li>
<?php
 }

echo "<script type='text/javascript'>
  preencher('$idFormulario');
</script>"
	
?>

aquela função javascript continua igual já que esta funcionando!!

pode me ajudar com alguma coisa, ideia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • 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.

      Estou com uma dúvida, referente cálculo de valores em tempo real.

      Tenho uma rotina, que faz o cálculo, o problema é mostrar o resultado.

      Quero mostrar o RESULTADO assim: 0,00  ou  0.00

      Abaixo posto o código.
      jQuery('input').on('keyup',function(){ //Remover ponto e trocar a virgula por ponto var m = document.getElementById("pgRest").value; while (m.indexOf(".") >= 0) { m = m.replace(".", ""); } m = m.replace(",","."); //Remover ponto e trocar a virgula por ponto var j = document.getElementById("pgDsct").value; while (j.indexOf(".") >= 0) { j = j.replace(".", ""); } j = j.replace(",","."); m = parseFloat(jQuery('#pgRest').val() != '' ? jQuery('#pgRest').val() : 0); j = parseFloat(jQuery('#pgDsct').val() != '' ? jQuery('#pgDsct').val() : 0); //Mostra o Resultado em Tempo Real jQuery('#pgTroco').val(m - j); <<=== aqui estou errando })  
       
      Grato,
       
      Cesar
       
       
    • Por violin101
      Caro amigos, saudações.

      Tenho uma tabela escrita em JS que funciona corretamente.
       
      Minha dúvida:
      - como devo fazer para quando a Tabela HTML estiver vazia, exibir o LOGO da Empresa ?

      Abaixo posto o script:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'i' ) return;// Não é Ctrl+A, portanto interrompemos o script evt.preventDefault(); //Chama a Função Calcular Qtde X Valor Venda calcvda(); var idProdutos = document.getElementById("idProdutos").value; var descricao = document.getElementById("descricao").value; var prd_unid = document.getElementById("prd_unid").value; var estoque_atual = document.getElementById("estoque_atual").value; var qtde = document.getElementById("qtde").value; var vlrunit = document.getElementById("vlrunit").value; var vlrtotals = document.getElementById("vlrtotal").value; var vlrtotal = vlrtotals.toLocaleString('pt-br', {minimumFractionDigits: 2}); if(validarConsumo(estoque_atual)){ //Chama a Modal com Alerta. $("#modal_qtdemaior").modal(); } else { if(qtde == "" || vlrunit == "" || vlrtotal == ""){ //Chama a Modal com Alerta. $("#modal_quantidade").modal(); } else { //Monta a Tabela com os Itens html = "<tr style='font-size:13px;'>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<input type='hidden' name='id_prds[]' value='"+idProdutos+"'>"+idProdutos+"</td>"; html += "<td width='47%' height='10'>"+ "<input type='hidden' name='descricao[]' value='"+descricao+"'>"+descricao+ "<input type='hidden' name='esp[]' value='"+prd_unid+"'> - ESP:"+prd_unid+ "<input type='hidden' name='estoq[]' value='"+estoque_atual+"'></td>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<input type='hidden' name='qtde[]' value='"+qtde+"'>"+qtde+"</td>"; html += "<td width='12%' height='10' style='text-align:right;'>"+ "<input type='hidden' name='vlrunit[]' value='"+vlrunit+"'>"+vlrunit+"</td>"; html += "<td width='14%' height='10' style='text-align:right;'>"+ "<input type='hidden' name='vlrtotal[]' value='"+vlrtotal+"'>"+vlrtotal+"</td>"; html += "<td width='12%' height='10' style='text-align:center;'>"+ "<button type='button' class='btn btn-uvas btn-remove-produto' style='margin-right:1%; padding:1px 3px; font-size:12px;' title='Remover Item da Lista'>"+ "<span class='fa fa-minus' style='font-size:12px;'></span></button></td>"; html += "</tr>"; $("#tbventas tbody").append(html); //Função para Somar os Itens do Lançamento somar(); $("#idProdutos").val(null); $("#descricao").val(null); $("#prd_unid").val(null); $("#qtde").val(null); $("#vlrunit").val(null); $("#vlrtotal").val(null); $("#idProdutos").focus(); //Se INCLUIR NOVO produto - Limpa a Forma de Pagamento $("#pgSoma").val(null); $("#pgRest").val(null); $("#pgDsct").val(null); $("#pgTroco").val(null); $("#tbpagar tbody").empty(); }//Fim do IF-qtde }//Fim do Validar Consumo });//Fim da Função btn-agregar  
      Grato,

      Cesar
       
    • Por violin101
      Caros amigos, saudações.

      Estou com uma pequena dúvida se é possível ser realizado.

      Preciso passar 2 IDs para o Sistema executar a função, estou utilizando desta forma e gostaria de saber como faço via JS para passar os parâmetro que preciso.

      Observação:
      Dentro da TABELA utilizei 2 Forms, para passar os IDS que preciso, funcionou conforme código abaixo.
      <div class="card-body"> <table id="tab_clie" class="table table-bordered table-hover"> <thead> <tr> <th style="text-align:center; width:10%;">Pedido Nº</th> <th style="text-align:center; width:10%;">Data Pedido</th> <th style="text-align:center; width:32%;">Fornecedor</th> <th style="text-align:center; width:10%;">Status</th> <th style="text-align:center; width:5%;">Ação</th> </tr> </thead> <tbody> <?php foreach ($results as $r) { $dta_ped = date(('d/m/Y'), strtotime($r->dataPedido)); switch ($r->pd_status) { case '1': $status = '&nbsp;&nbsp;Aberto&nbsp;&nbsp;'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#000000'; //Cor: Preta break; case '2': $status = 'Atendido Total'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#086108'; //Cor: Verde break; case '3': $status = 'Atendido Parcial'; $txt = '#000000'; //Cor: Branco $cor = '#FEA118'; //Cor: Amarelo break; default: $status = 'Cancelado'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#D20101'; //Cor: Vermelho break; } echo '<tr>'; echo '<td width="10%" height="10" style="text-align:center;">'.$r->pd_numero.'</td>'; echo '<td width="10%" height="10" style="text-align:center;">'.$dta_ped.'</td>'; echo '<td width="32%" height="10" style="text-align:left;">'.$r->nome.'</td>'; echo '<td width="10%" height="10" style="text-align:left;"><span class="badge" style="color:'.$txt.'; background-color:'.$cor.'; border-color:'.$cor.'">'.$status.'</span></td>'; echo '<td width="5%" style="text-align:center;">'; ?> <div class="row"> <?php if($this->permission->checkPermission($this->session->userdata('permissao'), 'vPedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/visualizar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-warning" title="Visualizar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-search icon-white"></i></button> </form> <?php } if($this->permission->checkPermission($this->session->userdata('permissao'), 'ePedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/editar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-primary" title="Editar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-edit icon-white"></i></button> </form> <?php } ?> </div> <?php echo '</td>'; echo '</tr>'; } ?> </tbody> </table> </div>
      Grato,

      Cesar.
    • Por belann
      Olá!
       
      Estou usando o editor quill em uma página html, sem fazer a instalação com npm, mas usando as api´s via internet com http, no entanto não consigo fazer a tecla enter funcionar para mudança de linha, tentei essa configuração abaixo, mas não funcionou.
       
      modules: {       syntax: true,       toolbar: '#toolbar-container',       keyboard: {         bindings: {           enter: {             key: 13,             handler: function(range, context) {                       quill.formatLine(range.index, range.length, { 'align': '' });             }           }  
       
×

Informação importante

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