Ir para conteúdo
Dr. Programador

Multiple Input com jquery

Recommended Posts

Bom dia pessoal, 

 

Estou com a seguinte dúvida.

Estou tentando desenvolver um formulário usando ajax, onde editarei os registros do usuário com PHP.

Porém, não estou conseguindo identificar os IDs via Jquery de cada registro listado dentro do Loop do PHP.

Vejam:

 

HTML

<?php foreach($listando as $rs): ?>
	<form>
		<input type="hidden" name="id_usuario[]" id="id_usuario" class="id_usuario" value="<?php echo($rs->id);?>">
		<input type="text" name="senha_usuario[]" id="senha_usuario" class="senha_usuario">
		<button type="button"  onclick="inserir_registo()">
	</form>
<?php endforeach ?>

 

 

 AJAX

<script type="text/javascript">
function inserir_registo()
{
    var dadosajax = 
    {
        'senha_usuario' : $(".senha_usuario").val(),
        'id_usuario'    : $(".id_usuario").val()
    };
    pageurl = 'editar.php';
    
  alert( 'ID:'+ $(".id_usuario").val()+ 'Senha: ' + $(".senha_usuario").val()); // TESTEI PARA VER O ID E SENHA RETORNADO. PORÉM SÓ RETORNA O PRIMEIRO REGISTRO DO LOOP.
  
    $.ajax
    ({
        url  : pageurl,
        data : dadosajax,
        type : 'POST',
        cache: false,
        
        error: function()
        {
            alert('Erro: Inserir Registo!!');
        },
        success: function(result)
        { 
            if($.trim(result) == '1')
            {
                alert("O seu registo foi inserido com sucesso!");
            }
            else
            {
                alert("Ocorreu um erro ao inserir o seu registo!");
            }
        }
    });
}
</script> 

 

Poderiam me ajudar?

 

Obrigado!

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

12 horas atrás, Dr. Programador disse:

<input type="text" name="senha[]" id="senha" >

Aparentemente, a id do input com a senha é #senha e não:

12 horas atrás, Dr. Programador disse:

        'senha_usuario' : $("#senha_usuario").val(),

 

Compartilhar este post


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

Olá!

Aparentemente, a id do input com a senha é #senha e não:

 

 

Opa! Justamente, amigo.

Consertei o erro, porém ainda continua não funcionando. Ele só está pegando o primeiro id do input do formulário. Como faço para resolver isso?

:pensive:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o sr. pretende 'pegar' mais de 1 elemento, não use id
id = identidade
e identidade  é coisa única! Cada id deve ser única.
Se cada id é unica, ids não podem ser repetidas

Para 'pegar' mais de um elemento, use class ao invés de id.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz as alterações do jeito que você falou, mas não funcionou... 

 

Não sei mais o que fazer, eu sou extremamente fraco em javascript, tenho muitas dificuldades!

 

Favor amigo, veja o código modificado acima.

 

Obrigado!

Compartilhar este post


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

Olá!
passa zipado aí pra eu adequar pra você.

 

Opa irmão!

Tentei anexar porém o forum só aceita os formatos: gif, jpeg, jpe, jpg, png.

 

Tem outra forma para que possa te mandar o arquivo zipado?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Cabrini
      Ola galera , estou com um probleminha . não consigo encontrar o erro no meu codigo :
      mostraDados/request.onreadystatechange
      mostra dados que é minha funçao. 
       
       
      for (var propriedade in dados) {
                      
                          if (typeof dados[propriedade] !== 'object') {
                              for(var i=0; i<dados.length ; i++){
                              var nome = dados.nome;
                               var idade = dados.idade;
                              var profissao = dados.profissao;
                              var esporte = dados.esporte;
                              container.innerHTML += '<td>'+nome + '</td>'+
                                                   '<td>'+idade + '</td>'+
                                                      '<td>'+profissao + '</td>'+
                                                      '<td>'+esporte + '</td>';
                                                      
                             no console o erro aponto para  a linha em negrito .
    • Por Bisnaguitos
      Olá, queria saber qual é a melhor forma de armazenar o id vindo da db para usar posteriormente para fazer outra requisição, delete ou put por exemplo. Segue um exemplo:
      A parte do jquery com requisição pelo ajax:
      $("form").on("submit", ()=>{ $.ajax({ type: "DELETE", url: "http://localhost:3000/admin/users", data: {user: >>Aqui eu quero transmitir o valor do id que veio na bd<< } ,success: (data)=>{ console.log("Tudo ok"); } }); }); <tbody> <% for(var i=0; i<data.length;i++){ %> <tr> <th scope="row"><%=i%></th> <td class="user"><%= data[i].user; %></td> <td><%= data[i].password; %></td> <td><i class="fas fa-user-minus"></i>>>Quando clicar neste botão quero transmitir o id ou no caso o user que veio da db mas não sei qual a melhor forma de armazenar o id da row. Não acho muito seguro armezar em algum atributo HTML.</td> </tr> <% } %> <tr> </tbody> E acima pegando os valores pelo ejs.
    • Por Jonas Ribeiro Nascimento
      Ola a todos e agradeço desde já
      Tenha a classe de validação do form onde pega todos os erros do form:
      // Validação final do cadastro public function validateFinalCadastro($arrVar) { if(count($this->getErro())>0){ $arrResponse=[ "retorno"=>"erro", "erros"=>$this->getErro() ]; }else{ $arrResponse=[ "retorno"=>"success", "erros"=>null ]; } return json_encode($arrResponse, JSON_UNESCAPED_UNICODE); } Aqui tenho o Controller que passa para view:
      public function teste() { //echo 'esse é um teste'; $this->recVariaveis(); $validate = new ClassValidate(); $validate->validateFields($_POST); $validate->validateEmail($this->Email); $validate->validateIssetEmail($this->Email); $validate->validateData($this->DataNascimento); $validate->validateCpf($this->Cpf); $validate->validateConfSenha($this->Senha,$this->SenhaConf); $validate->validateStrongSenha($this->Senha); $validate->validateCaptcha($this->gRecaptchaResponse); $validate->validateFinalCadastro($this->arrVar); } Se eu dar um echo, print ou vardump na $validate->validateFinalCadastro($this->arrVar); consigo passar ela pra view e apresentar o erro ...ele apresenta depois do fechamento do html da pagina...
      {"retorno":"erro","erros":["Email já cadastrado!","Utilize uma senha mais forte!","Sistema de segurança foi ativado! Atualize a página e tente novamente ou aguarde mais um pouco."]}
      Aqui esta o ajax sem datatype: 'json'
      Sem datatype: 'json' eu entro no success reponse mais caio no else, porque o response.retorno esta sem o datatype: 'json'.
      $('#FormCadastroClientes').on('submit', function(event){ event.preventDefault(); var dados=$(this).serialize(); console.log(dados); $.ajax({ url: getRoot()+'CadastroClientes/teste', type: 'post', contentType: "application/x-www-form-urlencoded;charset=UTF-8", data: dados, success: function (response) { $('.retornoCad').empty(); if(response.retorno == 'erro'){ getCaptcha(); $.each(response.erros,function(key,value){ $('.retornoCad').append(value+''); }); }else{ $('.retornoCad').append('Dados inseridos com sucesso!'); } }, error: function (response, jqXHR, request, status, errorThrown, erro) { console.log(response); //alert(dados); console.log(dados); //alert(jqXHR); console.log(jqXHR); //alert(request); console.log(request); //alert(status); console.log(status); //alert(errorThrown); console.log(errorThrown); //alert(erro); console.log(erro); }, complete: function (jqXHR, textStatus) { //colocar aqui algo que deseja que faça ao terminar todo o processo (finnaly) } }); Ajax com datatype: 'json' nao consigo entrar no success ele já cai no erro
      $('#FormCadastroClientes').on('submit', function(event){ event.preventDefault(); var dados=$(this).serialize(); console.log(dados); $.ajax({ url: getRoot()+'CadastroClientes/teste', type: 'post', dataType: 'json', data: dados, success: function (response) { $('.retornoCad').empty(); if(response.retorno == 'erro'){ getCaptcha(); $.each(response.erros,function(key,value){ $('.retornoCad').append(value+''); }); }else{ $('.retornoCad').append('Dados inseridos com sucesso!'); } }, error: function (response, jqXHR, request, status, errorThrown, erro) { console.log(response); //alert(dados); console.log(dados); //alert(jqXHR); console.log(jqXHR); //alert(request); console.log(request); //alert(status); console.log(status); //alert(errorThrown); console.log(errorThrown); //alert(erro); console.log(erro); }, complete: function (jqXHR, textStatus) { //colocar aqui algo que deseja que faça ao terminar todo o processo (finnaly) } }); Observações: - Consigo inserir no banco tudo ok. - Consigo apresentar o rertun json_encode direto na view - Consigo entrar no success do ajax sem usar datatype: 'json' não entro no if para ler o array mais entro no else.
      Eu recebo esse erros no console.log
      No response eu teria que receber o return do json_encode e não recebo. O que eu recebo é o html da view.
      O ajax esta esperando um retorno em json e nao o html da pagina.
      parsererror SyntaxError: "JSON.parse: unexpected character at line 1 column 1 of the JSON data"
      Obrigado a todos.....atecipadamente
       
       
    • Por alexandre_rangel
      Meus amigos estou tentando resolver um problema, mais se eu resolver esse consigo resolver os outros.
       
      Quero que mostre o resultado de uma consulta sql, até agora nao consegui, alguem tem uma ideia?
       
      Tenho o arquivo principal e o ajax lê um outro php que nele tem a consulta, e deveria trazer o resultado (sem refresh) ele até traz html mais nao traz o resultado da consulta sql 

      Arquivo /pages/retorna_informacoes.php
      <?php include ('includes/db.php'); $GetList6 = "SELECT * FROM COPD09 ORDER BY Data_EMP DESC"; $GetListCategory6 = mysqli_query($mysqli,$GetList6); while($col6 = mysqli_fetch_assoc($GetListCategory6)){ $id = $col6['ID']; $cd_1 = $col6['DESC_CREDOR']; $cd_2 = $col6['VL_EMP']; $cd_3 = $col6['ANO']; $cd_4 = $col6['CVAVE_EMP']; echo("$cd_1"); } ?> Arquivo Principal
       
      <button id ='CCXP_BTN'>Enviar Nome</button> <div id="CCXP"> </div> Script do Arquivo Principal
      <script type="text/javascript"> $("#CCXP_BTN").click(function(){ $.ajax({ url:"/pages/retorna_informacoes.php", type:"POST", data: ({}), // não está enviando nenhuma informação, quero apenas buscar o conteudo do retorna_informacoes.php success:function(resposta){ $('#CCXP').html(resposta); } }); }); </script>  
    • Por ghlevin
      Estou fazendo modificações no site de um cliente, tornando-o responsivo. Tive que fazer várias mudanças de layout que me foram enviadas por um fornecedor e, por causa dessas mudanças, algumas funções Javascript e PHP que eu tinha não funcionam no layout novo.
      Em uma delas, eu tenho dois filtros de data e local (unidade ou empresa). O de data é uma INPUT e o de unidades é um SELECT. Vou colocar o código da view abaixo:
      <form class="rd-mailform text-left" data-form-output="form-output-global" data-form-type="contact" method="post" novalidate="novalidate"> <p class="mobile-hide">Selecione abaixo os par&acirc;metros para visualiza&ccedil;&atilde;o.&nbsp;Se desejar salvar,&nbsp;enviar por e-mail ou imprimir,&nbsp;clique em&nbsp;'Gerar PDF'&nbsp;ou&nbsp;'Gerar Excel'.</p> <!--<div class="range range-xs-center" style="margin: 0px !important;">--> <div class="cell-sm-6"> <div class="form-group form-group-label-outside"> <label class="form-label form-label-outside text-dark rd-input-label" for="data-relatorio">Data</label> <input class="form-control form-control-last-child" id="data-relatorio" type="text" name="first-name" > </div> </div> <div class="cell-sm-6 offset-top-20 offset-sm-top-0"> <div class="form-group form-group-label-outside"> <label class="form-label form-label-outside text-dark rd-input-label" for="comboUnidades"> Unidade </label> <select id="comboUnidades" class="form-control select2-multiple" data-minimum-results-for-search="Infinity"> </select> </div> </div> <div style="width: 100%"> <div style="position: relative; float: left; padding: 5px" onclick="montaPDF()"><a class="btn btn-ellipse btn-java" href="#">GERAR PDF</a></div> <div style="position: relative; float: left; padding: 5px" onclick="montaExcel()" class="mobile-hide"><a class="btn btn-ellipse btn-java" href="#">GERAR EXCEL</a></div> </div> </form> Abaixo parte do código do arquivo JS que mostra como eram carregados esses filtros. O de data usa originalmente uma função datepicker, que não funciona no layout atual. E o das unidades usa uma função AJAX pra colocar todas as opções que vem do banco MySQL do site dentro do select comboUnidades:
      $(document).ready(function(){ showLoading(); var d = new Date(); d.setDate(d.getDate() - 1); $('#data-relatorio').datepicker({ dateFormat: "dd/mm/yy", maxDate: d }); $("#data-relatorio").datepicker('setDate',d); var param = location.href.split("?")[1]; if(typeof param != "undefined" ) { var unidade = param.split('=')[1]; } $.ajax({ async: false, url: '[:raiz]acompanhamentoDiario/getUnidades', dataType: 'json', success: function(data) { if (data.length > 0){ var retorno = ""; for(var i = 0;i < data.length; i++){ retorno += "<option value='"+data[i]['id']+"'>"+data[i]['newnome']+"</option>"; } $('#comboUnidades').html(retorno); if(typeof param != "undefined" ) { $('#comboUnidades option[value='+unidade+']').attr('selected', 'selected'); $('#comboUnidades').trigger('change'); } } else { } } }); $('#data-relatorio').change(function(){ montaTabela(); }); $('#comboUnidades').change(function(){ montaTabela(); }); var d = new Date(); $('#divTabela').hide(); montaTabela(); hideLoading(); }); Essa função chamada no AJAX se encontra num arquivo de Controller:
      public function getUnidades() { $acompanhamento = new AcompanhamentoDiario(); $retorno = $acompanhamento->getUnidadesUsuario(); echo json_encode($retorno); } Por sua vez, essa função do controller chama uma função em PHP que se encontra num arquivo da minha pasta Model do site. Ele traz as unidades do select dependendo do login do usuário:
      public function getUnidadesUsuario() { $idUser = Login::retornaIdUser(); $perfilAcesso = Login::retornaPerfilAcesso(); if(($perfilAcesso == 1) || ($perfilAcesso == 6)) { // Colocado o perfil 6 do Usuário de Demonstração /* se perfil de usuairo = 1*/ $sql = "SELECT u.*,concat(e.sigla,' - ',u.nome) as newnome"; $sql .= " FROM unidade u INNER JOIN cidade c ON u.CIDADE = c.id INNER JOIN estado e ON u.ESTADO = e.id"; $sql .= " join usuario_unidade uu on (uu.id_unidade = u.id)"; $sql .= " WHERE u.ind_unidade_ativa = 1 AND u.ind_predio_novo = 0"; $sql .= " and uu.id_usuario = $idUser and lower(uu.ind_tipo_investidor) != 'c' ORDER BY newnome ASC"; } elseif($perfilAcesso == 2) { /* se perfil de usuairo = 2*/ $sql = "SELECT u.*,concat(e.sigla,' - ',u.nome) as newnome"; $sql .= " FROM unidade u INNER JOIN cidade c ON u.CIDADE = c.id INNER JOIN estado e ON u.ESTADO = e.id"; $sql .= " join administrador adm on (adm.id_unidade = u.id)"; $sql .= " WHERE u.ind_predio_novo = 0"; $sql .= " and adm.id_usuario = $idUser and adm.id_usuario NOT IN (3124,4378)"; $sql .= " ORDER BY newnome ASC"; } else { /* se perfil de usuario = 3*/ $sql = "SELECT u.*,concat(e.sigla,' - ',u.nome) as newnome"; $sql .= " FROM unidade u INNER JOIN cidade c ON u.CIDADE = c.id INNER JOIN estado e ON u.ESTADO = e.id"; $sql .= " WHERE u.ind_predio_novo = 0 ORDER BY newnome ASC"; } $res = parent::executaQuery($sql); return $res; } A função montaTabela(), por ora, ainda não quero modificar, por isso não vou mostrar como ela é. Ela é executada na página dependendo da mudança dos filtros. Por ora, eu só queria saber como "popular" o select comboUnidades e como funcionar o filtro de data data-relatorio de forma semelhante ao datePicker.
×

Informação importante

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