2016-11-11 84 views
0

我有以下代码,它像mysql中的一个魅力一样工作,但是当使用DB2实现时,它返回值“undefined”,其中应该是实际值。使用DB2从自动完成的jquery UI返回未定义的值

consult.php

require_once("connect_db.php"); 

$action = (isset($_GET['action'])) ? $_GET['action'] : ''; 
$param = (isset($_GET['parameter'])) ? $_GET['parameter'] : ''; 

if($action == 'autocomplete'): 
    $where = (!empty($parameter)) ? "WHERE name LIKE '%{$parameter}%'" : ""; 
    $sql = "SELECT LOWER(name) FROM categories " . $where; 

    $stmt = db2_prepare($connection, $sql); 

     db2_execute($stmt); 
     $data = db2_fetch_object($stmt); 

    $json = json_encode($data); 
    echo $json; 
endif; 

categories.js

$(function() { 

$("#category").autocomplete({ 
     minLength: 1, 
     source: function(request, response) { 
      $.ajax({ 
       url: "consult.php", 
       dataType: "json", 
       data: { 
         action: 'autocomplete', 
        parameter: $('#category').val() 
       }, 
       success: function(data) { 
        response(data); 
       } 

      }); 
     }, 

}) 
.autocomplete("instance")._renderItem = function(p, item) { 
    return $("<p>") 
    .append("<a><b>" + item.name + "</b></a>") 
    .appendTo(p); 
}; 

}); 

回答

0

有我的代码错误。我忘了如下获取所有数据:

$stmt = db2_prepare($connection, $sql); 

     db2_execute($stmt); 

    while($row = db2_fetch_assoc($stmt)) { 
      $data[] = array(
      'name' => $row['NAME'] 
      ); 
    } 

现在是工作的罚款