last day (15 days later) » 

18:19
1
A: Clonar elemento, alterando valor do name

SamUma solução é criar padrões de arrays separando pelos códigos das visões. Por exemplo, digamos que clonei os campos desta forma: O resultado será: Array ( [fx] => Array ( [a] => 2020-01-01 [b] => teste [c] => 123 ) [1] => Array ...

rbz
rbz
Rapaz, sabia que o negócio era meio complexo, mas não tanto! rs... Mas sobre sua resposta, não posso ter 0 no array... eu preciso que sempre tenha um array X que tem como key Y recebendo o valor do campo. Quanto ao clone não estar dentro da table, foi falha minha, pois ele precisa estar, faz parte do formulário ir adicionando embaixo. Mas eu acho que com sua resposta, pode ser que eu consiga resolver. Eu vou tentar, provavelmente demorar um pouco, pois tenho muitas visões x campos ! rs Agradeço por enquanto! ✌️
Sam
Sam
É que o [0] é a primeira linha, o [1] a segunda e assim consecutivamente. É sempre melhor tratar arrays com base 0 quando são coleções de um mesmo grupo. Do jeito que fiz aí me pareceu a melhor opção porque vc consegue facilmente tratar isso no backend.
rbz
rbz
Entendi... É que esses 2 itens X e Y, são id de FK's, onde faço o insert (x, y, valor)... quando fiz o form, não iria ter duplicidades, mas agora precisará, é onde deu o problema! kk De qualquer forma, já vou dar +1 pois no mínimo irá me ajudar em algo tudo isso.
Tem um detalhe... ele teria que pegar o maior número do "contador" de todos elementos do form, para não ter problema de sobreposição.
Sam
Sam
Eu fiz isso no código e somei +1, aqui: +$(ultimo)[0].name.match(/\[(.+?)\]/)[1]+1
rbz
rbz
Então entendi errado aqui // pega o último índice clonado...
Sam
Sam
18:19
Ele pega o [n] e soma o n +1.
rbz
rbz
É, é que vc fez fixo, eu vou fazer o contador externo, pra ficar C[X][Y]. Mas aí preciso clonar, e percorrer 1 a 1..
@Sam
Sam
Sam
falae meu patrão :D
rbz
rbz
Parte eu consegui, parte não... kkkk
O que eu fiz:
[code]
function clone($e) {

// conta quantos inputs tem na table
var counter = $("#valores input").length;
// pega a table para adicionar o clone
$tb = $($e).parents('tbody');
// pega a linha a ser clonada
$ref = $($e).parents('tr');
// gera o clone
$clone = $ref.clone();

$("input", $clone).attr("name");

$($clone).appendTo($tb);
}
[/code]
Como eu adiciono código nesse chat?
Sam
Sam
acho que não tem como, pelo menos não sei
rbz
rbz
é, desisto
O que eu fiz, é criar um contador de inputs, gerar o clone, e agora preciso alterar em cada input o "name"... mas acho que isso será expressão regular
Se não me engano eu usaria

$("input", $clone).attr("name").each( minhafunção )
Seria isso?
aí só falta a expressão regular pra renomear e usar meu contador
18:26
Sam, boa tarde.
Sam
Sam
isso, o each tá certo
Preciso de um orçamento, te com o mesmo numero, final 91?
rbz
rbz
@Sam e dentro da function, expressão regular, não é?
ou não daria certo?
Sam
Sam
pode ser expressão regular ou uma string mesmo, concatenando os valores (acho mais simples do que regex).
@Tiago agora é 61 98365-7639
Blz
rbz
rbz
18:30
mas eu vou precisar tirar o valor antes de [x][y]... ele virá c[x][y], aí preciso tirar o "c" e adicionar o "contador"
Sam
Sam
dá pra tirar o c sem regex
Mandei, mensagem, conversamos por la. Valeu.
Sam
Sam
teste = "c[x][y]";
console.log(teste.substr(teste.indexOf("[")));
fica só o [x][y] sem o c
rbz
rbz
18:43
Eu ainda to apanhando do each kkkk
$("input", $clone).each(function(index, element){

console.log(index + ' : ' + element.attr("name"));

});
Tentando imprimir o name
Acho que consegui

last day (15 days later) »