我在php中获取db查询的结果,并通过json数组中的ajax返回它,但是当我尝试访问数据时,它给我的数据为'undefined' 为什么会这样?
这是我的php代码:
<?php
$tipo_prod= $_POST['tipo_prod'];
$conn = oci_connect("admin", "admin", "localhost/XE");
$query = "SELECT COD_PRODUCTO, NOMBRE FROM PRODUCTO WHERE COD_TIPO_PROD=" . $tipo_prod;
$exec= oci_parse($conn, $query);
oci_execute($exec);
//Check connection!!!
$exec= oci_fetch_array($exec);
echo json_encode($exec);
?>
我的ajax代码:
$.ajax({
url : "trae_producto.php",
type : "POST",
data: {"tipo_prod" : tipo_prod},
success : function(data){
data = JSON.stringify(data);
$.each(data, function(index, value){
$('#producto').append("<option value='" + value.COD_PRODUCTO + "'>" + value.NOMBRE + "</option>");
});
}});
答案 0 :(得分:0)
尝试做::
$.ajax({
url : "trae_producto.php",
type : "POST",
data: {"tipo_prod" : tipo_prod},
dataType: "json",
success : function(data){
$.each(data, function(index, value){
$('#producto').append("<option value='" + value.COD_PRODUCTO + "'>" + value.NOMBRE + "</option>");
});
}});
尝试在PHP代码中添加Content-Type标头,例如:
header('Content-Type: application/json');
echo json_encode($exec);
添加了: 做点什么
while($data = oci_fetch_array($exec)) {
$out[] = $data;
}
echo json_encode($out);
答案 1 :(得分:0)
$.ajax({
url : "trae_producto.php",
type : "POST",
dataType: "json",
data: {"tipo_prod" : tipo_prod},
success : function(data){
/* data = JSON.stringify(data); */
$.each(data, function(index, value){
$('#producto').append("<option value='" + value.COD_PRODUCTO + "'>" + value.NOMBRE + "</option>");
});
}});
我不知道你从PHP脚本中得到了什么真正的回报,但如果假设它是正确的,那么AJAX似乎有一些缺陷。
答案 2 :(得分:0)
您正在尝试将其提供的结果转换为JSON。 jQuery已经为你解析它,只需删除JSON.stringify的行。
$.ajax({
url : "trae_producto.php",
type : "POST",
data: {"tipo_prod" : tipo_prod},
success : function(data){
$.each(data, function(index, value){
$('#producto').append("<option value='" + value.COD_PRODUCTO + "'>" + value.NOMBRE + "</option>");
});
}
});
答案 3 :(得分:0)
首先,通过firebug调试是否要获取JSON对象,以及服务器是否正在发送数据。然后,您可以使用data = JSON.stringify(data);
data = JSON.parse(data);