将php数组返回给ajax无法正常工作

时间:2018-01-31 12:09:41

标签: php jquery mysql ajax

我正在运行查询到数据库,它获取一行,我想将其作为数组返回,可以作为数组['min'],数组['max']等进行访问,如果我用特定索引回显它,它在ajax中正确显示值但我无法将完整的行传递给ajax文件。

PHP文件:

<?php 
  // Database logic here
    $calid = reset($_POST);
    require '../incs/connect.php';
    $sql=mysqli_query($con,  "SELECT * FROM calcus_sets WHERE sets_id=$calid ");
    WHILE($row=mysqli_fetch_array($sql))
    {
        echo $row['min'];   break;
    }
    mysqli_close($con);
?>

JS档案:

function DB_Fetecher(ops){
    $.ajax({
          type: "POST",
          data: {ops},
          url: "calcus_es1-fetcher.php",
          success: function(res)
          {
            //  alert( res );
            alert(res);
          }
    });
}

此代码从mysql获取正确的值,但我想将完整行传递给ajax,然后使用ajax本身的每个索引放入文本框。

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式传递数组:

<?php 
  // Database logic here
    $calid = reset($_POST);
    require '../incs/connect.php';
    $sql=mysqli_query($con,  "SELECT * FROM calcus_sets WHERE sets_id=$calid ");

    $result = array();
    WHILE($row=mysqli_fetch_array($sql))
    {

        $result[] = array( "min" => $row['min'], "max" => $row['max'] );
    }
    mysqli_close($con);

   echo json_encode( $result );
?>

在您的js上,请务必指定dataType:"json",

function DB_Fetecher(ops){
    $.ajax({
          type: "POST",
          data: {ops},
          url: "calcus_es1-fetcher.php",
          dataType:"json",
          success: function(res)
          {
            //  alert( res );
            console.log(res);
          }
    });
}

注意:建议在调试时使用console.log(res);而不是alert()