PHP 使用 Ajax 传递 JSON 数据以进行 inArray() 比较

我正在尝试使用 Ajax 将 html 表单中的用户输入检查到数据库中的允许值列表,然后我想显示相应的消息。这是我正在使用的代码:


js


$(document).ready(function(e){


  $.ajax({

    type: 'POST',

    url: 'datafile.php',

    dataType : "json",

    success: function(result) {

          $("#postal_code").change(function(){

            var postal_code = $("#postal_code").val().slice(0,-2);

            if ($.inArray(postal_code,result) !== -1){

             console.log('success');

            } else {

              console.log('failure');

            }

        });

      }

    });

  });

数据文件.php


<?php

require_once("./db_con.php");


$query = mysqli_query($con, "SELECT postal_code FROM table");

$rows = mysqli_fetch_all($query);

echo json_encode($rows);

mysqli_free_result($query);

mysqli_close($con);

exit();

?>

我遇到的问题是输入值永远不会匹配变量中的任何值,result即使我知道它们在数据库中也是如此。result我认为这个问题与变量在另一个数组中包含数组的事实有关,例如[["value1"],["value2"],["value3"]].


四季花海
浏览 87回答 1
1回答

暮色呼如

我不能真正谈论 JavaScript 部分,但由于您只选择一列,您可以将其提取到一个维度中。&nbsp;mysqli_fetch_all默认获取一个数字索引数组:$rows&nbsp;=&nbsp;array_column(mysqli_fetch_all($query),&nbsp;0);或者按列名获取和提取:$rows&nbsp;=&nbsp;array_column(mysqli_fetch_all($query,&nbsp;MYSQLI_ASSOC),&nbsp;'postal_code');
打开App,查看更多内容
随时随地看视频慕课网APP