Lançado Adianti Framework 7.6!
Clique aqui para saber mais
BUG no THidden e em uma Função JAVASCRIPT (ttable) O THidden ao usar como campo vetorial, e chamar a função do TForm->getData() Exemplo:... não recupera os valores pelo getData() devido a que o mesmo não tem o tratamento feito para tal função, comparado ao TEntry e outros, vejamos.... ...
WP
BUG no THidden e em uma Função JAVASCRIPT (ttable)  
O THidden ao usar como campo vetorial, e chamar a função do TForm->getData() Exemplo:...
  1. <?php 
  2. $oculto_vetorial = new THiden('oculto_vetorial[]'); 
  3. ..........................
  4. $dados $this->form->getData();
  5. ?>


não recupera os valores pelo getData() devido a que o mesmo não tem o tratamento feito para tal função, comparado ao TEntry e outros, vejamos....

  1. <?php   
  2. //o tratamento que recebe o TEntry na hora de recuperar os valores desde o FORM
  3. /**
  4.      * Return the post data
  5.      */
  6.     public function getPostData()
  7.     {
  8.         $name str_replace(['[',']'], ['',''], $this->name); //<<<< Aqui esta o tratamento que recebe o TEntry  e outros componentes (removendo os colchetes para que seja idéntico seu nome ao nome que vem no array do _POST) ja o THidden não tem isto 
  9.         
  10.         .....................................................
  11.     }
  12. ?>


Função JAVASCRIPT do componente TTABLE > ttable.js

especificamente a função chamada >>> ttable_reset_fields

Vejamos o problema.

function ttable_reset_fields(row, clear_fields) { var fields = $(row).find('input,select'); var uniqid = parseInt(Math.random() * 100000000); //esta linha gera um ID único (similar a função existente nos componentes PHP) para cada elemento, ou era o que deveria ser, mas...... $.each(fields, function(index, field) // a cada volta aqui é atribuido o novo ID para cada INPUT/SELECT da linha da TABLE que foi duplicada/clonada, porem o ID é o mesmo para todos porque ele é gerado apenas ao inicio, antes do EACH { // o correto para que cada INPUT/SELECT tenha seu proprio ID seria que a linha citada acima esteja aqui dentro do EACH Exemplo: var uniqid = parseInt(Math.random() * 100000000); //gerar um ID diferente para cada INPUT/SELECT existente na ROW clonada var field_id = $(field).attr('id'); var field_component = $(field).attr('widget'); .........

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (2)


NR

A função onSave dos formulários vetoriais deve ser static, pois os campos criados dinamicamente não são registrados no formulário. Desse modo não podemos utilizar a função $this->form->getData(). Deve-se utilizar a variável parâmetro da função:
  1. <?php
  2. static function onSave($param)
  3. ?>


Quanto ao javascript, acho que a ideia é essa mesmo, o id é gerado uma única vez por linha. Observe que o id não se repete, pois ele é concatenado ao id original de cada componente:
var new_id = field_prefix + '_' + uniqid;
WP

ola Nataniel.


Quanto ao javascript, acho que a ideia é essa mesmo, o id é gerado uma única vez por linha. Observe que o id não se repete, pois ele é concatenado ao id original de cada componente: *
var new_id = field_prefix + '_' + uniqid;


errado
o prefix, é o tipo de widget (tentry, etc) , analise o código mais acima de onde tu extraiu esse trecho de código

dai si tiver 2 TEntry na mesma linha fica por exemplo > tentry_99999, tentry_99999


sobre o outro
A função onSave dos formulários vetoriais deve ser static, pois os campos criados dinamicamente não são registrados no formulário. Desse modo não podemos utilizar a função $this->form->getData(). Deve-se utilizar a variável parâmetro da função:

eu não estou usando formulario vetorial estou usando outra forma , e o único entry que tem problema é o THidden por não ter aquele tratamento que mencionei. (de todos modos fiz minha correção aqui) só quero deixar registrado para próximas versões para ser incluido a correção