|
|
|
ช่วยแก้หน่อยครับ code autocomplete ใช้งานได้ 50 % รบกวนผู้รู้ตอบหน่อยน่ะครับ |
|
|
|
|
|
|
|
เอา tag php ครอบโค๊ดหน่อยจะได้อ่านง่ายสวยงาม
|
|
|
|
|
Date :
2019-02-12 09:10:20 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แบบนี้หรอครับ
Code (PHP)
<?php
include_once 'connect.php';
?>
<html>
<head>
<meta charset="UTF-8">
<link type="text/css" rel="stylesheet" href="jquery.autocomplete.css" />
<script type="text/javascript" src="jquery-1.11.2.min.js"></script>
<script type="text/javascript" src="jquery.autocomplete.js"></script>
<script type="text/javascript">
var states = [
<?php
$provinces = "";
$sql = "select * from provinces ";
$query = mysql_query($sql);
while ($result = mysql_fetch_array($query)) {
$provinces .= "'" . $result['name_th'] . "',";
$provinces_id .= "'" . $result['id'] . "',";
}
echo rtrim($provinces, ",");
?>
];
$(function () {
$('#input1').autocomplete({
source: [states]
});
});
</script>
<script type="text/javascript">
var amphur = [
<?php
$amphurs = "";
$sql = "select * from amphures WHERE province_id = '".$provinces_id."'";
$query = mysql_query($sql);
while ($result = mysql_fetch_array($query)) {
$amphurs .= "'" . $result['name_th'] . "',";
}
echo rtrim($amphurs, ",");
?>
];
$(function () {
$('#input2').autocomplete({
source: [amphur]
});
});
</script>
|
|
|
|
|
Date :
2019-02-12 12:59:30 |
By :
113544 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
autocomplete คงแก้ไม่ได้ มันมี 2 select ซึ่งมันต้องอาศัย การเขียน autocomplete แบบอาศัย link url ไปเรียกมาใช้
ผมว่าน่าจะไปอ่าน document autocomplete ให้เข้าใจซักหน่อยนะครับ
ส่วน การคิวรี่ amphur อ้างอิง เลขจังหวัด คือมันเขียน statement แบบนั้นไม่ได้
$sql = "select * from amphures WHERE province_id = '".$provinces_id."'"; province_id มันเป็น ตัวแปรเดี่ยว
แต่ที่คุณใส่มา มันเป็นเซท ต้องเขียนแบบนี้
$sql = "select * from amphures WHERE province_id in ('".$provinces_id."') ";
แต่ทั้งนี้ทั้งนั้น ถีงจะแก้อำเภอได้ก็ไม่ได้ประโยชน์ เพราะ algorithm มัน ผิด
สิ่งที่คุณทำ นั้นหมายถีง ทุกจังหวัดมันเห็น ทุกอำเภอของประเทศไทย ไม่ได้แบ่ง เป็นจังหวัด
สิ่งที่ต้องทำ
1 เขียนโปรแกรมเลือก อำเภอเฉพาะจังหวัด แยกต่างหาก เพื่อที่เวลาเปลี่ยนจังหวัด autocomplete จะได้ ไปอ่าน อำเภอ จากลิงค์ นี้มาได้
2 ศึกษาการเขียน autocomplete แบบใช้ ajax ช่วยในการอ่าน ข้อมูลมาใช้แทนที่
ลองอ่านจากลิงค์นี้ดู เอาเป็นตัวอย่าง
https://stackoverflow.com/questions/9656523/jquery-autocomplete-with-callback-ajax-json
แต่ที่สำคัญต้องไปอ่าน document ในการใช้งานให้มากกว่านี้
ปล. อีกอย่าง เขียนโค๊ดแยกส่วน php กับ html ให้แยกจากกันให้มากที่สุด
ตัวอย่าง
Code (PHP)
<?php
include_once 'connect.php';
$provinces = []; $province_id=[];
$sql = "select * from provinces ";
$query = mysql_query($sql);
while ($result = mysql_fetch_array($query)) {
$provinces[]=trim($result['name_th']);
$provinces_id[]=$result['id'];
}
$amphurs = [];
$sql = "select * from amphures WHERE province_id in ('".implode("','"$provinces_id)."') ";
$query = mysql_query($sql);
while ($result = mysql_fetch_array($query)) { $amphurs[]= trim($result['name_th']);}
?>
<html>
<head>
<meta charset="UTF-8">
<link type="text/css" rel="stylesheet" href="jquery.autocomplete.css" />
<script type="text/javascript" src="jquery-1.11.2.min.js"></script>
<script type="text/javascript" src="jquery.autocomplete.js"></script>
<script type="text/javascript">
var states = ['<?=implode("','", $province)?>'];
$(function () {
$('#input1').autocomplete({ source: [states]});
});
var amphur = ['<?=implode("','",$amphur)?>'];
$(function () {
$('#input2').autocomplete({
source: [amphur]
});
});
</script>
|
ประวัติการแก้ไข 2019-02-12 15:02:36 2019-02-12 15:03:46
|
|
|
|
Date :
2019-02-12 14:56:30 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากครับผม กำลังหัดเรียนทางอินเตอร์เน็ตครับ เลยไม่รู้เรื่อง แต่จะนำความรู้นี้ไปศึกษาต่อครับ
|
|
|
|
|
Date :
2019-02-12 16:55:44 |
By :
113544 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|