2017-02-15 28 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'工作伙伴和感谢回应,并对我在大学时的慢反应感到抱歉 –