我无法在json数组中找到索引。 浏览器显示未定义的数据。 我发布了以下代码序列。
我用PHP编码的数组。
[{"voo_Cod":"1","voo_CidadeOrigem":"1","voo_CidadeDestino":"2","voo_Data":"2015-07-13 07:00:00","voo_Preco":"200"}]
我在jquery中的代码
$("#form").on("submit", function(event) {
event.preventDefault();
//receive data json php
$.ajax({
url: "dadosJSON.php",
// dataType: "json",
type: "post",
data: $(this).serialize(),
success: function(d) {
alert(d);
if(d[0].erro) {
$("h2").html(d[0].erro);
} else {
var html = "";
// var html = alert(d);
//show result in html
for($i = 0; $i < d.length; $i++) {
html += " <strong>Voo Data e Horario</strong> " + d[$i].voo_Data;
html += " <strong>Preco</strong> " + d[$i].voo_Preco;
}
}
$("body").html(html);
});
});
});
我的JASON php。
<?php
require_once("./authSession.php");
require_once("./conf/confBD.php");
include_once("../html/cabecalho_main_Pessoal.html");
print_r($_POST);\\print array
\\array try catch
try{
//conection PDO
$conexao = conn_mysql();
}catch(PDOException $excep){
echo "Erro!: " . $excep->getMessage() . "\n";
die();
}
if(!empty($_POST['cidadeOrigem'])){
$cidOrigem = utf8_encode(htmlspecialchars($_POST['cidadeOrigem']));
$CidDestino = utf8_encode(htmlspecialchars($_POST['cidadeDestino']));
}else{ echo "Não contém arquivos";}
$SQLSelect = 'SELECT * FROM voos WHERE voo_CidadeOrigem=? AND voo_CidadeDestino= ?';
$operacao = $conexao -> prepare($SQLSelect);
$pesquisar = $operacao -> execute(array($cidOrigem, $CidDestino));
$resultados = $operacao->fetchAll(PDO::FETCH_ASSOC);
$conexao = null;
\\show result
foreach($resultados as $key=>$result) {
echo "<pre>"; var_dump($result); echo "</pre>";
}
\\get array, send json result
$dados_result = json_encode($resultados);
echo $dados_result;
?>
`在浏览器响应中创建一个未定义的循环。
Voo Data e Horario undefined Preco undefined.
\错误结果
抱歉英语不好。
答案 0 :(得分:0)
取消注释此行
// dataType: "json",
答案 1 :(得分:0)
使用json_encode php函数对php数组进行编码,然后打印数组。如果不对数组进行编码,则无法使用js处理数组。
$arr = json_encode($array);
print_r($arr);