php - 如何检查json数据数组是否有返回值

标签 php jquery mysql json

我试图检查数组的对象是否包含 jquery 中的空数据,但它似乎不起作用。

如果传递的值存在于数据库中,则返回数组值,但如果传递的值不正确,则不会返回任何错误。

这是我迄今为止尝试过的:

PHP 代码

  if(isset($_POST['name'])){
  $json = array();
  $id =  trim($_POST['name']);
  $query = "SELECT regiNo, firstName, middleName, lastName FROM student WHERE regiNo = ?";
  $statement = $mysqli->prepare($query);
  $statement->bind_param('s', $id);
  $statement->execute();
  $statement->bind_result($rno, $fname, $mname, $lname);
  while ($statement->fetch()){
     $user=array('rno'=>$rno,'fname'=>$fname,'mname'=>$mname,'lname'=>$lname);
      array_push($json,$user);
  }
  echo json_encode($json, true);

   }

jQuery

<script>
$(document).ready(function(){

$(".Student_reg_code").blur(function () {
    var id = $(".Student_reg_code").val();
    var data = 'name=' + id;
    $.ajax({
        type: "POST",
        url: "process.php",
        data: data,
        dataType: 'json',
        success: function (data) {
            if (data) {
                for (var i = 0; i < data.length; i++) { //for each value in the json response
                    $(".Student_reg_code").val(data[i].id);
                    $(".regno").val(data[i].rno);
                    $(".lname").val(data[i].lname);
                    $(".mname").val(data[i].mname);
                    $(".fname").val(data[i].fname);
                } // for

            } // if
            else {
              alert('Empty value return for that'+ id);
            }

        } // success
    }); // ajax
});

});

</script>

最佳答案

因为 json_encode 总是返回一个值; data 参数始终为真。您可以使用以下表达式进一步测试返回的数据:

if (Array.isArray(data) && data.length) {
  ...
}

Array.isArray将确定 data 是否确实是一个数组,而 data.length 将是您的真值/假值,以确定它是否为空。

In JavaScript, a truthy value is a value that translates to true when evaluated in a Boolean context. All values are truthy unless they are defined as falsy (i.e., except for false, 0, "", null, undefined, and NaN).

关于php - 如何检查json数据数组是否有返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54383631/

相关文章:

mysql #1064 FROM 括号错误

php - 当今关于可扩展的高性能 PHP 应用程序的最佳方法

php - 检查 MySQL 数据库中是否存在电子邮件时出错?

jquery - “拉伸(stretch)”一个 div 到浏览器的边缘

javascript - jQuery 自动完成将结果标签显示为未定义

php - 使用composer时的pdo_mysql dsn

php - 如何防止数据库中出现重复项

php - Symfony2 Date.TimeZone() 问题

javascript - 通过多个元素重复脚本

sql - 如果在删除之前进行选择计数还是盲目调用删除更好?