I am developing on top of the Program-o chatbot and for the most part, it is working great.
- I am trying to have the "say" input field autocomplete based on what the bot already knows from the AIML definitions.
- My problem is I don't know how their logic/SQL works to determine what is returned in order for me to construct the SQL for the autocomplete to function.
- I am using the JSON / jQuery version of the chatbot and have made no core changes to the code. Jquery and jQuery UI CDN libraries (for the autocomplete JS) have been added. The autocomplete code is from David Carr.
Thank you for any help you can provide!
//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);
}
?>