Ajuda com Evento Ajax

olá estou com um problema pois quando adiciono o script abaixo em um botão tipo PHP ele funciona perfeitamente mas quando coloco o mesmo script em um evento PHP e chamo ele por um evento OnChange tipo Ajax ele não entra no foreach.

script usado:

$_soma_area = 0;

foreach ({talhao} as $_talhao_area)
{
sc_lookup(areatotal, “SELECT area FROM talhoes WHERE talhao_id = $_talhao_area”);
$_area1 = {areatotal[0][0]};
$_soma_area = $_soma_area + $_area1;

}

evento php quer dizer um método php?

Como você garante que {talhao} é uma array?

cole seus códigos aqui para que possamos avaliar melhor seu problema.

evento php quer dizer um método php?
sim

e {talhao} é um campo tipo checkbox multivalorado separado por “;”

quando coloco este script dento de um botão PHP ele identifica o {talhao} como uma array e funciona direitinho.
mas quando coloco em um evento OnClick (e não OnChange como disse antes) ele não identifica.
simplesmente passa direto pelo laço foreach.

Desculpa mas é muito estranho você dizer isso, que no botão php o campo se transforma em um array sozinho.

Dê um var_dump em ambos os eventos (ajax onchange e botão php) ou um echo mesmo

E verá que o campo não é um array.

adicionei um print_r({talhao}); dentro do laço foreach no botão php e ele mostra isto:

Array ( [0] => 1 [1] => 3 )
(pdo-pgsql): SELECT area FROM talhoes WHERE talhao_id = 1
Array ( [0] => 1 [1] => 3 )
(pdo-pgsql): SELECT area FROM talhoes WHERE talhao_id = 3

mas o mesmo codigo no metodo php que é chamado no evento ajax, não mostra nada.
o que percebi é que ele ignora do foreach para baixo. mesmo se colocar um echo depois do laço ele ignora.

coloque o var_dump antes do laço.
ou print_r se quiser.