A-AA+then

ต้องการให้ช่วยดู ว่า ajax ทำไมถึงแสดงภาษาไทยไม่ได้ค่ะ

1,660
ต้องการให้ช่วยดู ว่า ajax ทำไมถึงแสดงภาษาไทยไม่ได้ค่ะ
1.statusSV.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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>auto search</title>
    <script type="text/javascript" src="autocomplete.js"></script>
    <link rel="stylesheet" href="autocomplete.css"  type="text/css"/>
    </head>
    <body>
     
    <form id="form1" name="form1" method="post" action="act_auto.php">
      <input name="Sservice" type="text" id="Sservice" size="" />
      <input name="hSservice" type="hidden" id="hSservice" value="" />
       <input type="submit" name="Save" id="Save" value="Save" />
    </form>
    <script language="JavaScript" src="show_StatusSV.js"></script>
     
     
    </body>
    </html>
    
    2.gStatusSV.php
    
    
        <?
    
         
    
         
    
        header("Content-type:text/html; charset=UTF-8");        
    
        header("Cache-Control: no-store, no-cache, must-revalidate");       
    
        header("Cache-Control: post-check=0, pre-check=0", false); 
    
         
    
             
    
        // เชื่อมต่อฐานข้อมูล
    
        $link=mysql_connect("localhost","root","0746186") or die("error".mysql_error());
    
        mysql_select_db("servicehr",$link);
    
         
    
        mysql_query("set character set utf8");
    
         
    
        $q = urldecode($_GET["q"]);
    
         
    
        $q  = iconv('utf-8', 'tis-620', $q  );
    
         
    
        $pagesize = 50;// จำนวนรายการที่ต้องการแสดง
    
        $table_db="statuserror";// ตารางที่ต้องการค้นหา
    
        $find_field="statuserrorName";// ฟิลที่ต้องการค้นหา
    
        $sql = "select * from $table_db  where locate('$q', $find_field) > 0 order by locate('$q', $find_field), $find_field limit $pagesize";
    
        $results = mysql_query($sql);
    
         
    
         
    
        while ($row = mysql_fetch_array( $results )) {
    
        $id = $row["statuserrorID"];// ฟิลที่ต้องการส่งค่ากลับ
    
        $name = ucwords( strtolower( $row["statuserrorName"] ) );// ฟิลที่ต้องการแสดงค่า
    
         
    
         
    
        // ป้องกันเครื่องหมาย '
    
        $name = str_replace("'", "'", $name);
    
        // กำหนดตัวหนาให้กับคำที่มีการพิมพ์
    
        $display_name = preg_replace("/(".$q.")/i", "<b></b>", $name);
    
        echo "<li onselect=\"this.setText('$name').setValue('$id');\">$display_name</li>";
    
        }
    
        mysql_close();
    
        ?>
    
        
        3.show_StatusSV.js
        
        
             
        
            function make_autocom(autoObj,showObj){
        
            var mkAutoObj=autoObj; 
        
            var mkSerValObj=showObj; 
        
             
        
             
        
            new Autocomplete(mkAutoObj, function() {
        
            this.setValue = function(id) {
        
            document.getElementById(mkSerValObj).value = id;
        
            }
        
            if ( this.isModified )
        
            this.setValue("");
        
            if ( this.value.length < 1 && this.isNotClick ) 
        
            return ;
        
            return "gstatusSV.php?q="+encodeURIComponent(this.value);
        
             
        
             
        
             
        
                });
        
            }
        
             
        
            // การใช้งาน
        
            // make_autocom(" id ของ input ตัวที่ต้องการกำหนด "," id ของ input ตัวที่ต้องการรับค่า");
        
            make_autocom("Sservice","hSservice");
        
             
        
             
        
             
        
             
        
             
        
             
        
             
    

1 ความคิดเห็น

ปัญหาเรื่องภาษาไทยกับ Ajax มีหลายอย่างที่ต้องทำนะครับ แต่ที่สำคัญที่สุดคงจะเป็น "ทั้งหมดต้องเป็น UTF-8" ซึ่งถ้าเป็น UTF-8 ทั้งระบบแล้ว ปัญหาเรื่องภาษาไทยจะไม่กลับมากวนใจอีกเลย

แนวทางการแก้ไข ผมแนะนำให้หาอ่านบทความบนเว็บ เพราะมีหลายอย่างที่อาจต้องทำ ซี่งควรปฏิบัติให้เป็นนิสัย เพื่อที่จะได้ไม่ต้องมาแก้ปัญหาในภายหลังครับ

ลองศึกษาดูนะครับ
1
^