2017-09-28 8 views
0

私はProgram-o chatbotの上に開発しており、大部分は素晴らしいです。Program-O Chatbotオートコンプリート

  1. ボットがAIML定義から既に知っていることに基づいて、入力フィールドのオートコンプリートをしようとしています。
  2. 私の問題は、ロジック/ SQLがオートコンプリート機能のためにSQLを構築するために返されるものを特定する方法を知りません。
  3. 私はJSON/jQueryのチャットボットのバージョンを使用しており、コードを大幅に変更していません。 JqueryとjQuery UI CDNライブラリ(オートコンプリートJS用)が追加されました。オートコンプリートコードはDavid Carrです。

ご協力いただきありがとうございます。

//I added autocomplete JS within index.php 

    $(function() { 

     //autocomplete 
     $(".auto").autocomplete({ 
      source: "search.php", 
      minLength: 1 
     });     

    }); 

//Search.php included within index.php 

<?php 
define('DB_SERVER', 'localhost'); 
define('DB_USER', 'root'); 
define('DB_PASSWORD', 'root'); 
define('DB_NAME', 'demo'); 

if (isset($_GET['say'])){ 
    $return_arr = array(); 

    try { 
     $conn = new PDO("mysql:host=".DB_SERVER.";port=8889;dbname=".DB_NAME, DB_USER, DB_PASSWORD); 
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

     $stmt = $conn->prepare('SELECT something FROM someTable WHERE something LIKE :say'); 
     $stmt->execute(array('term' => '%'.$_GET['term'].'%')); 

     while($row = $stmt->fetch()) { 
      $return_arr[] = $row['something']; 
     } 

    } catch(PDOException $e) { 
     echo 'ERROR: ' . $e->getMessage(); 
    } 

    /* Toss back results as json encoded array. */ 
    echo json_encode($return_arr); 
} 

?> 

答えて

0

この問題は正しく解決されませんでした。以下のようなクエリを実行できます。これが機能するには、jQuery UIのCSSファイルとJSファイルが含まれていることを確認してください。最後に、以下のスクリプトではフォーム自体は表示されませんが、id = "say"を指定して入力が正しく行われるようにしてください。より良い回答は高く評価されていますが、これが私が思いついたものです。ありがとうございます

//Main File/index.php etc 
<script> 
$(function() { 
    $("#say").autocomplete({ 
     source: "search.php", 
     minLength: 1 
    }); 
}); 
</script> 


//search.php 
<?php 
$host="localhost"; 
$username="uid"; 
$password="pwd"; 
$dbname="name"; 

//create a connection with dbname 
$conn=mysqli_connect($host,$username,$password,$dbname); 
if(!$conn) 
{ 
die("error in establishing connection: ". mysqli_connect_error()); 
} 

$search=$_GET['term']; 

//select query to get data from table 
$sql="SELECT pattern from aiml WHERE pattern LIKE '%".$search."%'"; 

//run the above query 
$result=mysqli_query($conn,$sql); 

//display all the records 
while($row=mysqli_fetch_assoc($result)) 
{ 
//storing all the values of 'post_title' field one by one in an array 
$data[]=$row['pattern']; 
} 

//return json data 
echo json_encode($data); 
?> 
関連する問題