简体   繁体   English

SyntaxError 问题:JSON 中位置 0 的意外标记 K

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

"SyntaxError: Unexpected token K in JSON at position 0" “语法错误:JSON 中的意外标记 K 位于位置 0”

Hi There,你好呀,

I tried to create chained dropdown using JQuery, but when I try to run the script, the error was triggered我尝试使用 JQuery 创建链式下拉列表,但是当我尝试运行脚本时,触发了错误

"SyntaxError: Unexpected token K in JSON at position 0" “语法错误:JSON 中的意外标记 K 位于位置 0”

Index.php file : 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 (for the firs drop down) 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 (for second drop down) 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
  ?>

Config.js配置文件

$(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);
  }
});
});
});

As I can see in your code, you are passing the HTML response from the but the datatype you are using in your client-side AJAX code is JSON.正如我在您的代码中看到的,您正在传递来自 的 HTML 响应,但您在客户端 AJAX 代码中使用的数据类型是 JSON。 You can directly output the the HTML.您可以直接输出 HTML。 Try this way,试试这个方法

pilih_kota.php 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;
  ?>

Config.js配置文件

$(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