簡體   English   中英

SyntaxError 問題:JSON 中位置 0 的意外標記 K

[英]Problem with SyntaxError: Unexpected token K in JSON at position 0

“語法錯誤:JSON 中的意外標記 K 位於位置 0”

你好呀,

我嘗試使用 JQuery 創建鏈式下拉列表,但是當我嘗試運行腳本時,觸發了錯誤

“語法錯誤:JSON 中的意外標記 K 位於位置 0”

Index.php 文件:

<head>
<title>Info Properti</title>
<script src="js/jquery.min.js" type="text/javascript"></script>
<script src="js/config.js" type="text/javascript"></script>
</head>
<body>
<div >
   <form class="search_form" action="#">
    <div class="search_box_container">
        <ul class="dropdown_row clearfix">
            <li class="dropdown_item dropdown_item_5">
                <div class="dropdown_item_title">Provinsi</div>
                    <select name="provinsi" id="provinsi" class="dropdown_item_select">
                        <option value ="">Pilih</option>
                        <?php include "pilih_prop.php";?>
                        </select>
            </li>
            <li class="dropdown_item dropdown_item_5">
                <div class="dropdown_item_title">Kota</div>
                    <select name="kota" id="kota" class="dropdown_item_select">
                    <option value ="">Pilih</option> 
                    </select>
                <div id="loading" style="margin-top: 15px;">
                <img src="images/loading.gif" width="18"> <small>Loading...</small>
                </div>
            </li>
        </ul>
    </div>
</form>

pilih_prop.php(用於第一個下拉菜單)

    <?php

      include "koneksi.php";

      $sql = mysqli_query($konekan, "SELECT * FROM provinsi ORDER BY nama_provinsi");

      while($data = mysqli_fetch_array($sql)){ // Ambil semua data dari hasil eksekusi $sql
        echo "<option value='".$data['id_provinsi']."'>".$data['nama_provinsi']."</option>";
      }
    ?>

pilih_kota.php(用於第二個下拉列表)

<?php
  include "koneksi.php";
  $id_provinsi = $_POST['id_provinsi'];

  $sql = mysqli_query($konekan,"SELECT * FROM kota WHERE id_provinsi='".$id_provinsi."' ORDER BY nama_kota");

   $html = "<option value=''>Pilih</option>";

   while($data = mysqli_fetch_array($sql)){ 
   $html .= "<option value='".$data['id_kota']."'>".$data['nama_kota']."</option>"; 
   }

    $callback = array('data_kota'=>$html);
    echo json_encode($callback); // konversi varibael $callback menjadi JSON
  ?>

配置文件

$(document).ready(function(){ 
$("#loading").hide();

$("#provinsi").change(function(){ 
$("#kota").hide(); 
$("#loading").show();

$.ajax({
  type: "POST", 
  url: "pilih_kota.php", 
  data: {provinsi : $("#provinsi").val()}, 
  dataType: "json",
  beforeSend: function(e) {
    if(e && e.overrideMimeType) {
      e.overrideMimeType("application/json;charset=UTF-8");
    }
  },
  success: function(response){ 
    $("#loading").hide(); 
    $("#kota").html(response.data_kota).show();
  },
  error: function (xhr, ajaxOptions, thrownError) {
    alert(thrownError);
  }
});
});
});

正如我在您的代碼中看到的,您正在傳遞來自 的 HTML 響應,但您在客戶端 AJAX 代碼中使用的數據類型是 JSON。 您可以直接輸出 HTML。 試試這個方法

pilih_kota.php

<?php
  include "koneksi.php";
  $id_provinsi = $_POST['id_provinsi'];

  $sql = mysqli_query($konekan,"SELECT * FROM kota WHERE id_provinsi='".$id_provinsi."' ORDER BY nama_kota");

   $html = "<option value=''>Pilih</option>";

   while($data = mysqli_fetch_array($sql)){ 
   $html .= "<option value='".$data['id_kota']."'>".$data['nama_kota']."</option>"; 
   }

    echo $html;
  ?>

配置文件

$(document).ready(function(){ 
$("#loading").hide();

$("#provinsi").change(function(){ 
$("#kota").hide(); 
$("#loading").show();

$.ajax({
  type: "POST", 
  url: "pilih_kota.php", 
  data: {provinsi : $("#provinsi").val()}, 
  dataType: "html",

  success: function(response){ 
    $("#loading").hide(); 
    $("#kota").html(response).show();
  },
  error: function (xhr, ajaxOptions, thrownError) {
    alert(thrownError);
  }
});
});
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM