Php 添加数据类型:“引用”;json";在阿贾克斯赢了';行不通

Php 添加数据类型:“引用”;json";在阿贾克斯赢了';行不通,php,jquery,json,ajax,Php,Jquery,Json,Ajax,我试图从数据库中检索数据,然后将其显示到模式中,但是,当我在ajax中添加数据类型:“json”时,它似乎不再执行我的php文件。我对ajax和json不熟悉,所以我不知道我在哪里遇到了问题。顺便说一句,我试图实现一个CRUD函数,这就是为什么我试图将数据加载到模式中进行更新。我使用相同的模式创建和更新 这是我的html代码 <div class="modal fade" id="addmodal"> <div class="modal-dialog">

我试图从数据库中检索数据,然后将其显示到模式中,但是,当我在ajax中添加数据类型:“json”时,它似乎不再执行我的php文件。我对ajax和json不熟悉,所以我不知道我在哪里遇到了问题。顺便说一句,我试图实现一个CRUD函数,这就是为什么我试图将数据加载到模式中进行更新。我使用相同的模式创建和更新

这是我的html代码

<div class="modal fade" id="addmodal">
          <div class="modal-dialog">
            <div class="modal-content">
              <div class="modal-header">
                <h3>Add Product</h3>
              </div>
              <div class="modal-body">
                <form class="" action="add.php" method="post" id="insert_form" enctype="multipart/form-data">
                    <div class="form-group input-width center-block">
                      <input class="form-control" type="file" name="img" id="img" value="" required/>
                    </div>
                    <div class="form-group input-width center-block">
                      <label>Product Name:</label>
                      <input class="form-control" type="text" name="pnametb" id="pnametb" placeholder="Product Name" required>
                    </div>
                    <div class="form-group input-width center-block">
                      <label>Price:</label>
                      <input class="form-control" type="text" name="pricetb" id="pricetb" placeholder="Price" required>
                    </div>
                    <div class="form-group input-width center-block">
                      <label>Category:</label>
                      <select style="" class="action form-control" name="category" id="category" required>
                      <option value="" disabled selected>Select a category:</option>
                      <?php
                                while($row = mysqli_fetch_assoc($result))
                                {
                                ?>
                                <!-- Separated HTML and PHP -->
                                <option value="<?php echo $row['category']?>"><?php echo $row['category']?></option>
                                <?php
                                }
                                ?>
                    </select>
                    </div>
                    <div class="form-group input-width center-block">
                      <label>Description:</label>
                    </div>
                    <div class="form-group input-width center-block">
                      <textarea style="color:black" name="destb" id="destb" class="message-box" placeholder="Description" rows="5" id="comment" required></textarea>
                    </div>
                    <input type="hidden" name="id" id="id">
                    <input class="btn btn-success" type="submit" name="add" value="Add" id="add">
                </form>
              </div>
              <div class="modal-footer">
                <button class="btn btn-default" type="button" name="button" data-dismiss="modal">Close</button>
              </div>
            </div>
          </div>
        </div>
这是我的php文件

<?php
  //fetch.php
  $connect = mysqli_connect("localhost", "root", "", "testing");
   if(isset($_POST["id"]))
    {
       $query = "SELECT * FROM productsa WHERE id = '".$_POST["id"]."'";
       $result = mysqli_query($connect, $query);
       $row = mysqli_fetch_array($result);
       echo json_encode($row);
    }
?>

首先向PHP脚本添加JSON头,如下所示:

header("Content-Type: application/json", true);
下一步不是echo$行,而是执行以下操作:

 echo json_encode($row);
在这之后,您可能必须更改您的成功:您的Ajax调用的功能,以修复打印数据的问题,但我将留给您:)

进一步阅读和更详细的解释如下:

因为
$row
不是JSON字符串。您需要将数据库中的数据编码为JSON。使用echo json_encode($row)
可能重复@ImClarky my bad,我实际上有
echo json_encode($row)在我的代码中,我无意中删除了它hanks@Devon我会检查我的坏代码,我的代码实际上有
echo json\u encode($row),我将尝试添加一个标题,如果它解决了问题,我会告诉您谢谢:)
 echo json_encode($row);