jQuery Автозаполнение турецких специальных проблем персонажей - PullRequest
1 голос
/ 24 марта 2011

У меня проблемы с турецкими спецсимволами, моя система кодировки - кодировка ISO-8859-9 в заголовках и на сервере.

//Database connections
include_once("ogr_con.php");
require_once("oraunit.php");

function strtoupper_tr($string){
  $upper=array("ü" => "Ü", "ö" => "Ö", "ğ" => "Ğ", "ş" => "Ş", "ç" => "Ç", "i" => "İ", "ı" => "I");
  return strtoupper(strtr($string,$upper));
}

function strtolower_tr($string){
  $low=array("Ü" => "ü", "Ö" => "ö", "Ğ" => "ğ", "Ş" => "ş", "Ç" => "ç", "İ" => "i", "I" => "ı");
  return strtolower(strtr($string,$low));
}

$adi= strtolower_tr($_GET["q"]);
$adi[0]=strtoupper($adi[0]);
$soyadi= strtoupper_tr($_GET["q"]);
if (!$adi) return;

$adiquery="SELECT K.ADI||' '||K.SOYADI AS FLNAME 
           FROM personel.kisi k 
           WHERE K.ADI LIKE '%".$adi."%' OR K.SOYADI LIKE '%".$soyadi."%')";
$aq=oraArray($con, $adiquery, array());
if(is_array($aq)){
    while(list($sno,$u)=each($aq)){
        $uadi = $u['FLNAME'];
        echo "$uadi\n";
    }
}
  1. Функции strtoupper_tr и strtolower_tr не работают для специальных символов.
  2. $uadi - когда возвращаемые значения не отображаются должным образом в текстовом поле.

    <script type="text/javascript"><br> $(document).ready(function() {<br> $("#fuadsoyad").autocomplete("get_name.php", {<br> width: 260,<br> matchContains: true,<br> selectFirst: false<br> });<br> });<br> </script>

Может кто-нибудь помочь мне решить эту проблему?
Что вы посоветуете мне сделать?

Ответы [ 5 ]

1 голос
/ 25 марта 2011

Я решил проблему. Позвольте мне объяснить, как в случае, если кто-то может столкнуться с этим в будущем. Выберите все необходимые данные и поместите их в одну переменную, как показано ниже как $ hocalist

$adiquery="SELECT K.ADI||' '||K.SOYADI AS FLNAME 
           FROM personel.kisi k 
           WHERE K.ADI LIKE '%".$adi."%' OR K.SOYADI LIKE '%".$soyadi."%')";

$aq=oraArray($con, $adiquery, array());
$hocalist = "";
foreach($aq as $row) {
$hocalist .= ($hocalist != "" ? "," : "")."{label:'".addslashes($row[FLNAME])."',ID:'$row[KNO]'}";
}

После этого передайте эту переменную как массив в JS, как показано ниже.

<script type="text/javascript">
$(document).ready(function() {
var hocalistesi = new Array(<?= $hocalist; ?>);
$("#fuadsoyad").autocomplete(hocalistesi, {
minChars: 0,
max: 50,
width: 460,
autoFill: false,
matchContains: true,
formatItem: function(row, i, max) {
 return row.label;
},
formatMatch: function(row, i, max) {
 return row.label;
},
formatResult: function (row) {
 return row.label;
}
});
});
</script> 

Конечно, если мы говорим об эффективности, это не так эффективно, но работа с разными наборами символов может быть принята как решение. Надеюсь, будет полезно

1 голос
/ 24 марта 2011

Общий совет при работе со специальными символами: используйте кодировку UTF-8 : он должен поддерживать все символы, которые потребуются вашему приложению, независимо от того, какой язык вам нужен.

И это облегчит работу с Ajax, поскольку стандартная кодировка для Ajax - UTF-8.

0 голосов
/ 20 февраля 2014

try iconv ("windows-1254", "UTF-8", $ text);

0 голосов
/ 21 апреля 2011

См. Следующий блог , предлагает расширение для клавиатуры.Полный список комбинаций:

  • для буквы «ğ», используйте «Alt Gr» + «g»;
  • для буквы «ş», используйте «Alt Gr» + «s»;
  • для буквы «ç», используйте «Alt Gr» + «c»;
  • для буквы «ü», используйте «Alt Gr» + «u»;
  • для буквы «ö», используйте «Alt Gr» + «o»;
  • для буквы «ı», используйте «Alt Gr» + «i».
0 голосов
/ 24 марта 2011

Вам необходимо сохранить сам файл .js как «Юникод», например в Блокноте:
Сохранить как -> раскрывающийся список Кодировка -> Юникод

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...