jQuery $ .each循环和json mysql数据

时间:2013-11-11 20:11:32

标签: javascript jquery mysql json

我有这个PHP获取mysql的值。 我在这个查询中得到两行。

include('../funciones/funciones.php');
$link=Conectarse();
$pnc=$_GET['pnc'];
$query="SELECT
accion_inmediata.accion,
accion_inmediata.responsable,
accion_inmediata.peligro,
accion_inmediata.ambiente,
DATE_FORMAT(accion_inmediata.fecha,'%m-%d-%Y') as fechaAccion
FROM
accion_inmediata
WHERE
accion_inmediata.id_pnc = '$pnc'";
$result = mysql_query($query,$link);
$array = mysql_fetch_array($result);
echo json_encode($array);

这是我的Jquery代码

function traerAcciones(pnc){

      $.ajax({                         
      url: 'php_ajax/select_acciones.php?pnc='+pnc,               
      data: "",                        
      dataType: 'json',                
      success: function(data)          
      {

  $.each(data, function() {
 alert(this.accion);

});
      } 
    }); 
    }

当我执行此代码时,警报显示“未定义”。 $ .each循环工作正常,但值是问题。 请帮助,抱歉我的英语不好

2 个答案:

答案 0 :(得分:1)

尝试传递值和索引作为参数,这是它的工作原理:

$.each(data, function(index, value) {
 alert( value.accion );
});

也可能是数据对象不包含您认为的操作的问题,请执行

console.log(index, value);

在你的循环中和

console.log(data);

在循环之前,您将看到您拥有的内容以及如何处理它。

希望它有所帮助!

答案 1 :(得分:0)

目前,您只返回第一行的数组。因此要检索两者,您可能希望这样做:

include('../funciones/funciones.php');
$link=Conectarse();
$pnc=$_GET['pnc'];
$query="SELECT accion_inmediata.accion, accion_inmediata.responsable, accion_inmediata.peligro, accion_inmediata.ambiente, DATE_FORMAT(accion_inmediata.fecha,'%m-%d-%Y') as fechaAccion FROM accion_inmediata WHERE accion_inmediata.id_pnc = '$pnc'";
$result = mysql_query($query,$link);
$array = array();
while($row = mysql_fetch_array()):
$array[] = $row;
endwhile;
echo json_encode($array);

现在你的jquery应该能够检索数据了。另外,请避免使用MYSQL_QUERY弃用。