Проблема с SyntaxError: Неожиданный токен K в JSON в позиции 0 - PullRequest
0 голосов
/ 30 января 2019

"SyntaxError: Неожиданный токен K в JSON в позиции 0"

Привет,

Я пытался создать цепочку с помощью JQuery, но когда я пытаюсьзапустите сценарий, ошибка была вызвана

"SyntaxError: неожиданный токен K в JSON в позиции 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
  ?>

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

1 Ответ

0 голосов
/ 30 января 2019

Как я вижу из вашего кода, вы передаете ответ 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;
  ?>

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);
  }
});
});
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...