2017-02-15 29 views
2

我需要我的PHP搜索引擎返回西里爾文的單詞,如果有匹配的SQL,並將它們作爲結果返回。我的ajax工作正常,併發布西里爾字符example如何使php由於搜索引擎返回西里爾詞

但我想這個問題是來自PHP的,當它接收到的字符它可能對其進行編碼和字符從асд將成爲像0%D0%BD%D0%B8因此,有我的代碼:

<form method="post" accept-charset="UTF-8"> 
 
<p>Търсене на храни: <input type="text" name="fsearch" id="food_search"></p> 
 
</form> 
 
<div id="food_search_result"> 
 
<!---------------------------------------------------------------- 
 
           PHP 
 
-----------------------------------------------------------------> 
 
    if(!empty($_POST['fsearch'])) { 
 
$fsearch = $_POST['fsearch']; 
 

 
$req = $connect->prepare("SELECT title FROM food_data_bg WHERE title LIKE ?"); 
 
$value = '%'.$fsearch.'%'; 
 
$req->bind_param('s', $value); 
 
$req->execute(); 
 
$req->store_result(); 
 
$num_of_rows = $req->num_rows; 
 
$req->bind_result($title); 
 
if ($req->num_rows == 0){ 
 

 
echo 'Няма резултати'; 
 
} 
 
else{ 
 
while($data=$req->fetch()){ 
 
    ?> 
 
     <div class="search-result"> 
 
      <span class="result-title"><?php echo $title; ?></span> 
 
     </div> 
 
     <?php 
 
     } 
 
$req->free_result(); 
 
    } 
 
} 
 
?>

所以只是爲了澄清更容易讓你們幫助我.1。信息從HTML輸入字段發送到AJAX 2.Ajax在php中發佈信息form.3.Php獲取該信息並檢查是否匹配SQL數據庫.4 .Php返回結果如果有,如果沒有結果它返回一個回聲'Няманамеренирезултати'這意味着在保加利亞沒有發現任何結果。

,我已經嘗試過的事情:在我的HTML表單

1.Edit加密類型。

2.已添加功能如This一。

3.爲UTF-8字符添加元標記。 沒有工作。

+0

不明白你的問題... PHP不會在數據庫中搜索,或者它不會返回解碼後的搜索結果? –

+0

嗯,我不知道是否...猜猜西里爾字符從ajax傳遞到PHP,PHP是解密他們,如0%D0%,它沒有找到任何匹配,並返回「Няманамеренирезултати」(沒有結果發現)...所以我需要一種方法來使PHP讀取和傳輸西里爾字符,而不使它們像0%D0% –

+0

你*確認* PHP的接收數據......? 'var_dump($ _ POST)'... – deceze

回答

0

嘗試:

$value = '%'.urldecode($fsearch).'%'; 

和第二方案 - 嘗試查詢您進行數據庫連接後右:

$connect->query("SET NAMES utf8"); 

不要嘗試兩種。

+0

Doesn'工作夥伴和感謝迴應,並對我在大學時的慢反應感到抱歉 –