Ir para conteúdo

POWERED BY:

Arquivado

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

adonys

Concatenar IDs no AJAX

Recommended Posts

Olá, é a primeira vez que mecho com ajax, consegui um script e apliquei em meu projeto e funcionou corretamente, eu consigo adicionar um valor ao meu banco de dados sem atualizar a página, mais o problema esta que eu tenho vários registros no meu banco de dados, ai quando eu listo eles e coloco o script, ele so funciona no primeiro registro, eu encontrei uma solução que deve funcionar so não estou conseguindo aplicar ela

 

Veja, este é o conteúdo do banco de dados sendo listado:

<tr class="title">
      <td><h4>Adicionar</h4></td>
      <td><h4>Estoque</h4></td>
      <td><h4>Código</h4></td>
      <td><h4>Descrição</h4></td>
      <td><h4>Preço Cadastro</h4></td>
</tr>
<?php  while ($dados = mysql_fetch_array($sql)) { ?>
<tr class="desc" bgcolor="<?php if($i%2 == 0){echo "#EDDAB3";}else{echo "#FFFFFF";} ?>"> 
      <td><input name="estoque" id="estoque<?php echo $dados['id']; ?>" type="text" size="5" />
      <input name="id" id="id" type="text" size="5" value="<?php echo $dados['id']; ?>" />
     <button type="button" onClick="alterar_div()">Alterar</button></td>
     <td><div id="conteudo<?php echo $dados['id']; ?>"><p><?php echo $dados['estoque'];?></p></div></td>
        <td><p><?php echo $dados['cod'];?></p></td>
        <td><p><?php echo $dados['nome'];?></p></td>
        <td><p><?php echo $dados['preco'];?></p></td> 
</tr> 
    <?php $i++ ?>
<?php } ?> 
__________________________________________________
Eu adicionei o ID do registro ao ID do input e ao ID da div que vai ser alterada, observerm os campos em negrito. No caso esta foi a solução que encontrei para que o script funcione para todos os registros, mais o problema esta aqui no script:
<script language="javascript" type="text/javascript">
function alterar_div() {
  $.ajax({
    type: "POST",
    url: "processa.php",
    data: {
      novo_estoque: $("#estoque").val(),id: $('#id').val(), 
    },
    success: function(data) {
      $('#conteudo').html(data); 
    }
  });
}
</script>
Eu gostaria de pegar o ID do estoque concatenado com o ID do registro e o ID da div também concatenado com o ID do registro, igual eu fiz no código que lista o banco de dados
no caso deveria ficar algo do tipo:
data: {
      novo_estoque: $("#estoque").val() + $('#id').val(),
      id: $('#id').val(), 
    },
    success: function(data) {
      $('#conteudo + #id').html(data); 
    }
No caso eu estaria enviando o
novo_estoque: #estoque + #id
id: #id
e alterando a div
#conteudo+#id
Só que não sei como fazer essa concatenação de ids, é minha primeira vez com ajax por isso talvez eu esteja fazendo tudo errado também e tenha uma forma mais fácil, gostaria de uma luz de como concatenar esses IDs ou uma forma mais fácil de fazer o que eu quero

Compartilhar este post


Link para o post
Compartilhar em outros sites
<button type="button" onClick="alterar_div()">Alterar</button>
 para
<button type="button" onClick="alterar_div('<?php echo $dados['id']?>')">Alterar</button>
<script language="javascript" type="text/javascript">
function alterar_div(id) {
  $.ajax({
    type: "POST",
    url: "processa.php",
    data: {
      novo_estoque: $("#estoque"+id).val() 
    },
    success: function(data) {
      $('#conteudo'+id).html(data); 
    }
  });
}
</script>

Talvez já tenha resolvido o problema mas pelo que entendi esse era o seu problema pegar um valor de uma determinada linha e incluir no conteudo da linha especifica o retorno do arquivo processa.php se esse mesmo o problema.

 

1. no codigo html foi incluido um parametro na função alterar_div que é o id do registro gravado no loop

2. no codigo javascript o parametro é usado para concatenar, pegando o valor e adicionando no campo conteudo referente a linha da tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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