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!
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.
— Diogo Boegershausen 05 de Apr de 2018Boa 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
— Welder Ribeiro 05 de Apr de 2018Podes compartilhar o código dessa função changerSelect?
— Diogo Boegershausen 05 de Apr de 2018Segue 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);
} }
— Welder Ribeiro 05 de Apr de 2018Então, você precisa utilizar o indice da linha do pai e filho pra pegar valores dos campos ou setar valores.
— Diogo Boegershausen 05 de Apr de 2018Algo 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); $("#CentrodeCusto3_" + indicePaiFilho).val(retorno.content.values[i].Centro_de_Custo); } }
— Diogo Boegershausen 05 de Apr de 2018Entendi. 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!
— Welder Ribeiro 05 de Apr de 2018É 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.
— Diogo Boegershausen 05 de Apr de 2018