success: function( data )
{
var n = data.x;
//aqui ja aparece a mensagem - undefined - parece que nao consegue reconher o argumento do php
alert(n);
for(i = 0; i < data.x; i++) {
var n = "idnf :" + data.idnf + "\n";
alert(data.idnf);
}
}
Faz tempo que eu nao mexo com PHP, mas o seu codigo me parece errado, tipo vc cria um array, faz um loop para adicionar dados nesse array, mas vc esta sobrescrevendo os dados a cada interacao do loop e nao adicionando um novo element no array.
Ok, agora que a gente arrumou o seu PHP, vamos ver o seu javascript!
Para que vc precisa do valor “x” ?? Olhando pra sua funcao (client-side), “x” nao eh usado para absolutamente nada alem de ser usado do loop.
success: function( data ) {
var n = data.x;
//aqui ja aparece a mensagem - undefined - parece que nao consegue reconher o argumento do php
alert(n);
for(i = 0; i < data.x; i++) {
var n = "idnf :" + data.idnf + "\n";
alert(data.idnf);
}
}
Se vc tivesse enviado um array corretamente, mais ou menos assim (repare as chaves [ ] indicando que eh um array):
Entao, minha dica eh, revise o seu codigo PHP, se a sua intencao eh enviar um varios registros, vc precisa montar o seu array corretamente, se a sua intencao eh somente um registro, vc nao precisa criar um array e nem ter aquelo loop. De qualquer forma eu acho desnecessario vc criar esse contador “x” para saber quantos elementos vc tem no array.
Acho que se vc fizer essas modificacoes que eu sugeri para voce, tudo deve funcionar de qualquer forma aqui tem uns links que eu achei que podem te ajudar com o PHP:
[quote=perdeu]usa $stmt->fetchAll() q ele retona um array certinho pra vc, lembre o json deve estar em utf8.
o q é aquele data.x? da onde vem esse x?[/quote]
Problema do fetchAll eh que:
talvez nao seja necessario todos os campos do select e segundo
talvez voce queria simplificar, modificar ou ate mesmo nao expor os nomes reais dos campos, no exemplo que ele passou ele esta modificando os nomes:
$arr['idnf'] = ($row->idnotaEntrada);
idnf ao invez de idnotaEntrada. Porem, daria para fazer tudo isso no SQL e retornar os dados corretos, ai o fetchAll seria ok de usar.
Quanto, ao data.x, eu acredito que a ideia era obter o numero de registros retornados para fazer o loop no client-side. Como eu disse nao eh necessario, porque ele poderia pegar o numero de registros simplesmente usando a propriedade length do array (data.length) ou como eu coloquei no exemplo, usando a funcao each do jquery.