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