[RESOLVIDO] Eventos não processam Foreach

Boa Tarde!

Tenho um formulário que carrego via ajax de um select um checkbox (segue imagem abaixo),
http://sgfranquia.com.br/_portal/pedagogico/temp/tela_insercao.png
Obs: Escolhe-se o Curso Padrão e seleciona os módulos que quer daquele curso, e depois clica em Criar Turma.

O problema é que preciso inserir um registro para cada checkbox marcado, já faço isso em outro formulário através de um botão e funciona normalmente, e preciso fazer nesse por eventos do Insert para aproveitar a validação do scriptcase dos campos,
Segue o código:

...
foreach({modulos_padrao} as &$value){
	$_sql_insert_mod = "INSERT INTO TurmaModulos VALUES(
 		NULL,
		'$id_turma',
		'$value',
		NULL,
		NULL,
 		'{IdInstrutor}',
 		'{Status}',
		NULL,
		NULL
	)";
	
	sc_exec_sql($_sql_insert_mod);
...

Quando colocado o código em algum evento (BeforeInsert, AfterInsert, OnValidadeSucess) ocorre um erro por conta do Foreach

Invalid argument supplied for foreach()

Mas quando colocado em um botão funciona normalmente,

Para não parar o desenvolvimento coloquei manualmente o insert do formulario no mesmo botão, abrindo mão de validações.

Alguém sabe por que isso está ocorrendo?

Desde já agradeço!

Thiago…
O campo checkbox guarda todos us valores juntos entre “;”.
Você precisa usar o explode() para criar um array separando os valores e depois fazer o foreach.

Coloque em modo debug e analise o codigo.

Boa tarde!

Eu não utilizo separador nos checkbox, até por questão dele não ser gravado no banco, utilizo apenas como auxiliar no procedimento.
Já havia colocado em modo debug e nessa instancia não aparece pois ele é na execução.

Eu estou utilizando por botão e funciona normalmente, o problema é que quando utilizo o botão de Editar/Inserir do SC ele da esse erro, logo penso que o erro não está no código e sim em alguma configuração ou método do SC.

Mais alguma sugestão do que possa ser?

Att.

Cara se não me engano quando fazemos um checkbox manual no SC ao submeter o form o campo obrigatoriamente tem uma separador então você terá que dar um explode nesse campo:

$modulos = explode({modulos_padrao});

E aí então usar o foreach com o $modulos.

Resolvido…
Exatamente como você disse Saulo, coloquei um explode e funcionou com o delimitador, nunca ia imaginar que ele faria isso com o objeto no submeter.

...
$modulos = explode(';', {modulos_padrao});

foreach($modulos as &$value){
...

Obrigado novamente pela ajuda de todos!