10/10/2018, 10:43

textbox và ajax nhờ gỡ rối

1 mảng tên kh
$mang = array("aaa","abc","abd","bbb","bbc");
mình có 1 textbox ,khi gõ chữ cái đầu tiên thì hiện danh sách bắt đầu bằng chữ cái đó và chỉ cho chọn tên có trong danh sách đó
tất cả load trong 1 trang duy nhất
ai có cách nào không .giúp mình với
honnhienh viết 12:50 ngày 10/10/2018
Code:
<?php
$cities=array(
'Ireland'=>array(
'Carlow', 'Cavan', 'Clare', 'Cork', 'Donegal', 'Dublin',
'Galway', 'Kerry', 'Kildare', 'Kilkenny', 'Laois', 'Leitrim',
'Limerick', 'Longford', 'Louth', 'Mayo', 'Meath', 'Monaghan',
'Offaly', 'Roscommon', 'Sligo', 'Tipperary', 'Waterford',
'Westmeath', 'Wexford', 'Wicklow'
)
);
$found=array();
if(isset($cities[$_GET['country']])){
$txt=strtolower($_GET['city']);
$len=strlen($txt);
foreach($cities[$_GET['country']] as $city){
if(substr(strtolower($city),0,$len)===$txt)
$found[]=addslashes($city);
}
}
echo "{'cities':[";
if(count($found))echo "'".join("','",$found)."'";
echo "]}";
P/S copy and paste

nếu học php có thể tham khảo quấn jQuery 1.3 with PHP chương 4 phần cuối cùng.
jdkhang viết 12:47 ngày 10/10/2018
Hiển danh sách tên các kháchh hàng trong select. Khi chọn select và nhập 1 kí tự thì select sẽ hiển thị lại danh sách khách hàng có tên bắt đầu là kí tự vừa nhập.



file index.php
PHP Code:
<?php include_once('customer.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Searh & Show database +</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <!--<script language="javascript" type="text/javascript" src="jquery-1.4.2.min.js"></script>-->
    <style>
        #customer{width: 80px;}
    </style>
    <script>
        $(document).ready(function(){
            $('#customer').keypress(function(e){                
                $.post('customer.php', {customer: String.fromCharCode(e.charCode)}, function(data){
                    $('#customer').html(data);
                });                
            });
        });
    </script>
  </head>
  <body>
    <form name="frmCtrl" id="frmCtrl" method="post" action="">
        <label for="customer">Tên Khách hàng</label>
        <select id="customer"><?php showCustomer(''); ?></select>        
    </form>
  </body>
</html>
file customer.php
PHP Code:
<?php 
    
/*
        1. Tạo trước CSDL dbphp:
        $sql = "CREATE DATABASE dbphp";
        
        2. Tạo trước tabel tên author có cấu trúc như sau:
        $sql = "CREATE TABLE author (
            author_id INT NOT NULL AUTO_INCREMENT,
            author_name VARCHAR (60) NOT NULL,
            author_pass VARCHAR (16) NOT NULL,
            author_email VARCHAR (30) NOT NULL,
            PRIMARY KEY(author_id)
            ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci";
        3. Nhập trước 1 vài giá trị vào table author để test
        
        4. BEGIN
    */
    
$conn mysql_connect('localhost''root''') or die ('Ko the ket noi den Server');
    
mysql_select_db('dbphp'$conn);
    
    function 
showCustomer($cus){        
        if (
$cus == ""){
            
$sql "SELECT author_name FROM author";
        } else {        
            
$key "'" $cus "%'";
            
$sql "SELECT author_name FROM author WHERE author_name LIKE $key";
        }        
        
        
$query mysql_query($sql);        
        while (
$row mysql_fetch_array($query)) {
            echo 
'<option value="'.$row***91;'author_name'***93;.'">'.$row***91;'author_name'***93;.'</option>';
        }
    }
    
    if (isset(
$_POST***91;'customer'***93;)){        
        
showCustomer($_POST***91;'customer'***93;);
    }    
?>
mobell200 viết 12:55 ngày 10/10/2018
@jdkhang select option thì không gõ được thì phải bạn à
cám ơn bạn cái này có tên
jquerry textbox autocomplete
tuy nhiên
mình có 1 mảng
$mang = array("aaa 11","abc 22","abd 33","bbb 44","bbc 55 66");
chưa biết truyền mảng từ php sang mảng javascript
không lẽ đổ lần lượt từng phần tử vào mảng javascirpt kiểu như nối đuôi
như thế này sao
<script type="text/javascript">

var parents = ["Jani", "Tove"];
var children = ["Cecilie", "Lone"];
var family = parents.concat(children);
document.write(family);

</script>
jdkhang viết 12:59 ngày 10/10/2018
Được gửi bởi mobell200
@jdkhang select option thì không gõ được thì phải bạn à
cám ơn bạn cái này có tên
jquerry textbox autocomplete
tuy nhiên
mình có 1 mảng
$mang = array("aaa 11","abc 22","abd 33","bbb 44","bbc 55 66");
chưa biết truyền mảng từ php sang mảng javascript
không lẽ đổ lần lượt từng phần tử vào mảng javascirpt kiểu như nối đuôi
như thế này sao
<script type="text/javascript">

var parents = ["Jani", "Tove"];
var children = ["Cecilie", "Lone"];
var family = parents.concat(children);
document.write(family);

</script>
cái mình làm là phương pháp xuất dữ liệu trong auto-complete thôi. còn việc hiển thị auto-complete bạn tìm hiểu thêm cách trình bày, nó liên quan nhiều đến css, mình không có thời gian làm hoàn chỉnh giúp bạn được. thân

Còn việc truyền biến từ php sang js:
- trên trang html bạn tạo vài input type="hidden", cho nó nhận các giá trị từ php.
- trong js mình sẽ lấy giá trị của các input này.
VnVision viết 12:51 ngày 10/10/2018
http://jquery.bassistance.de/autocomplete/demo/
http://jqueryui.com/demos/autocomplete/

http://php.net/manual/en/function.json-encode.php
phungdinhvu viết 12:45 ngày 10/10/2018
em dùng plugin auto complete của jquery-ui thì phải, cái đó tiện lắm à, làm việc trên client nữa, đỡ mất công server xử lí + banwidth, như trang http://kstn.tk của anh xài free mà dùng xử lí trên server thì 3 ngày sập =)) )
Bài liên quan
0