2011年2月2日 星期三

【jQuery】autocomplete-search.php

耍了一個晚上的白癡,搞了四個小時,發現自己完全搞錯了解決問題的方向,
很好!!難怪老公會覺得我整天都沒做什麼事情....有做~沒成果嘛!!一樣就是nothing!

但還是認真的來做一下筆記,把今天浪費的幾小時做個紀錄。

今天試了jquery-autocomplete,的search.php,
require_once('Connections/bom2011.php');/*連線設定*/
$q = strtolower($_GET["q"]);
if (!$q) return;

$str="SELECT * FROM `factory` ORDER BY `factory`.`f_create` DESC";
$f_query=mysql_query($str);
$aa=array();
$bb=array();

while($f_rows=mysql_fetch_assoc($f_query)){
 $name=$f_rows['f_name'];/*公司名稱*/
 $vat=$f_rows['f_vat'];/*公司統編*/
 array_push($aa,"$name");
 array_push($bb,"$vat");
 }
$items = array_combine($aa,$bb);
$result = array();

foreach ($items as $key=>$value) {
 if (strpos(strtolower($key), $q) !== false) {
  echo "$key|$value\n";
 }
}

相關連結:
array_combine()
array_push()

說明:
原本使用字串來直接升成array($string),但結果是不行的唷!
while($f_rows=mysql_fetch_assoc($f_query)){
 $name=$f_rows['f_name'];/*公司名稱*/
 $vat=$f_rows['f_vat'];/*公司統編*/
 $string="\"$name\"=>\"$vat\"";
 }
$items=array($string);

這樣的寫法出來的結果會是:
Array(
[0]=>neme01=>vat01
neme02=>vat02
neme03=>vat03
.....
)

而實際上我們需要的結果為:
Array(
neme01=>vat01
neme02=>vat02
neme03=>vat03
.....
)

如果要使用json的方式送出表單的話,會牽涉到中文的問題,而json_decode()正是解決此問題的解碼函式:
$ar=json_encode($result);
$ar2=json_decode($ar);
var_dump($ar2);

相關連結:
json-decode()