Formuláro pai x filho não puxa as informações do Dataset na tabela

Boa tarde,

Criei um formulário pai x filho que busca as informações de um dataset customizado pela função changerSelect, a partir do método onchange.

Eu puxo os dados nome, cargo e centro de custo pelo registro no campo input. entretanto criei um botão para adicionar novos colaboradores na mesma estrutura, mas quando tento puxar os dados não acontece da mesma forma e não puxa nenhuma informação. Sabem de que forma me ajudar? Isso acontece por tentar puxar as informações de dentro de uma tabela? Há alguma outra forma?

Segue anexo imagem do formulário com o campo que puxa e os campos que não puxam os dados, além do trecho de código que constam os dados.

Grato!

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Boa tarde Welder,

como é o código da função changerSelect()? Acredito que deve ser algum problema em pegar o valor do campo “Registro2” para fazer a pesquisa, algo relacionado com os indices das linhas do pai x filho. No caso as linhas ficariam com os nomes “Registro2___1”, “Registro2___2” e assim por diante.

Boa tarde Diogo,
Eu usei a mesma lógica da função aplicada no registro que retorna as informações, onde apenas mudei apenas o nome dos campos. Ou seja, no 2º registro estão todos como 2.
Atenciosamente,

Welder

Podes compartilhar o código dessa função changerSelect?

Segue abaixo:
var codValor = $(“#Registro2”).val(); //
retorno = getDataSet(“ds_listaAllColaboradores”,“Registro”,codValor,codValor);
for (i = 0;i < retorno.content.values.length;i++){
if(retorno.content.values[i].Registro == codValor){
$(“#Nome2”).val(retorno.content.values[i].Nome);
$(“#Cargo2”).val(retorno.content.values[i].Cargo);
$(“#Centro_de_Custo3”).val(retorno.content.values[i].Centro_de_Custo);

			 }
      }

Então, você precisa utilizar o indice da linha do pai e filho pra pegar valores dos campos ou setar valores.

Algo como;

var codValor = this.value;
retorno = getDataSet(“ds_listaAllColaboradores”,“Registro”,codValor,codValor);

var indicePaiFilho = this.id.substring(this.id.indexOf() + 3);

for (i = 0;i < retorno.content.values.length;i++){
if(retorno.content.values[i].Registro == codValor){
$(“#Nome2___” + indicePaiFilho).val(retorno.content.values[i].Nome);
$(“#Cargo2___” + indicePaiFilho).val(retorno.content.values[i].Cargo);
$(“#Centro_de_Custo3___” + indicePaiFilho).val(retorno.content.values[i].Centro_de_Custo);
}
}

Entendi. Mas da forma que fiz ele deveria retornar algum valor, pois no primeiro registro retorna corretamente os dados de nome, cargo e centro de custo, conforme primeiro anexo.
Vou tentar sua sugestão de qualquer forma! Muito obrigado!

É que o seu primeiro registro não faz parte da tabela pai x filho. Então o name do input fica sendo “Registro1”. Se você inspecionar os elementos do seu formulário a partir do segundo elemento vai ver que o name do input vai estar como “Registro2___1” e assim por diante.