Show image in JQuery ui autocomplete

Viewed 10699

I have a script with JQuery ui autocomplete that works perfectly. There is a search process that shows user firsname and lastname. But in my databse, there is also users' pic and I want to display it in the suggestion with the fristname and lastname.

( in the database, pic contains the image url)

The script:

$(function() {    
    $("#search").autocomplete({
        source: "autocomplete.php",
        minLength: 1,
        select: function(event, ui) {
            var url = ui.item.id;
            if(url != '') {
                location.href = '...' + url;
            }
        },   
        html: true,           
        open: function(event, ui) {
            $(".ui-autocomplete").css("z-index", 1000);      
        }
    });     
});

autocomplete.php

<?php     
if ( !isset($_REQUEST['term']) ) {
 exit;
}
 
$mysqli = new MySQLi($DB_host,$DB_login,$DB_pass,$DB_select);
     
$term = trim(strip_tags($_GET['term'])); 
$term = preg_replace('/\s+/', ' ', $term);
 
$a_json = array();
$a_json_row = array();
 
$a_json_invalid = array(array("id" => "#", "value" => $term, "label" => "Only letters and digits are permitted..."));
$json_invalid = json_encode($a_json_invalid);
 
if(preg_match("/[^\040\pL\pN_-]/u", $term)) {
  print $json_invalid;
  exit;
}

if ($data = $mysqli->query("SELECT * FROM users WHERE firstname LIKE '%$term%' OR lastname LIKE '%$term%' ORDER BY firstname , lastname")) {
 while($row = mysqli_fetch_array($data)) {
  $firstname = htmlentities(stripslashes($row['firstname']));
  $lastname = htmlentities(stripslashes($row['lastname']));
  $id= htmlentities(stripslashes($row['id']));
  $pic= htmlentities(stripslashes($row['pic']));
  $a_json_row["id"] = $id;
  $a_json_row["value"] = $firstname.' '.$lastname;
  $a_json_row["label"] = $firstname.' '.$lastname;
  array_push($a_json, $a_json_row);
 }
}
 
/* jQuery wants JSON data */
echo json_encode($a_json);
flush();
 ?>

Please help.

2 Answers
Related