[英]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.