我在php中获取db查询的结果,并通过json数组中的ajax返回它,但是当我试图访问数据时,它给我的数据是“未定义的”,为什么会发生这种情况呢?
以下是我的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>");
});
}});发布于 2013-09-12 03:59:43
试着做:
$.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代码中添加内容类型标头,如:
header('Content-Type: application/json');
echo json_encode($exec);补充道:做一些类似的事情
while($data = oci_fetch_array($exec)) {
$out[] = $data;
}
echo json_encode($out);发布于 2013-09-12 04:00:18
$.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似乎有一些缺陷。
发布于 2013-09-12 04:00:36
您正在尝试将它提供给您的结果转换为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>");
});
}
});https://stackoverflow.com/questions/18755036
复制相似问题