jquery otomatik tamamlama eklentisi - eser getirilemedi - fetchAll yok

0 Cevap php

Ben bir getirme gelen sunucu tarafında böyle bir şey, varsa:

array(1) { [0]=>  array(1) { ["nome"]=>  string(7) "aaaa.br" } } [{"nome":"aaaa.br"}]

Yukarıdakilerin json olduğunu:

[{"nome":"aaaa.br"}]

Bu İşleri:

parse: function(data) {
 return $.map(eval('('+data+')'), function(result) {
   return {
    data: result,
    value: result.nome,
    result: result.nome
   }
  });
}

Sonuç başarıyla ayrıştırılır.

Yerine getirme, ben fetchAll değiştirmek, eğer, dökümü (örneğin burada olduğu gibi sadece ilk indeks) bu böyle olur:

array(65) { [0]=>  array(1) { ["nome"]=>  object(stdClass)#7 (1) { ["nomeDominio"]=>  string(7) "aaaa.br" } }

Yukarıdaki json dönüştürme:

string(2632) "[{"nome":{"nomeDominio":"aaaa.br"}}

Burada, sonuç başarılı değil ayrıştırılır.

So I believe something needs to be changed on the js side. But I'm absolutely clueless.

UPDATE: The nomeDominio is from the fetchObj PDO method, and corresponds to the column name on the database. It's a natural behaviour for fetch with PDO when FETCH::OBJ option is used.

Bu js bir php parçasıdır:

$keyword = addslashes($_GET["q"]);

$comandos = new ComandoController();

$arr = $comandos->recebeNomeDominios($keyword);

if(is_array($arr))
{
    echo json_encode($arr);

}


public function recebeNomeDominios($keyword)
{
   $DominioDao = new DominioDao();

   $objecto = $DominioDao->recebeNomeDominios($keyword);

   return $this->jsonArray($objecto);

}

private function jsonArray($objecto)
{
  $json = array();
  if(isset($objecto) && !empty($objecto))
  {
    foreach($objecto as $obj)
    {
      $json[] = array('nome' => $obj);

    }
  }
   return $json;
}

Nihayet:

public function recebeNomeDominios($keyword)
{
  try
  {
     $stmt = $this->_dbh->prepare("SELECT d.nomeDominio FROM dominio d WHERE d.nomeDominio LIKE '%".$keyword."%'");
$stmt->execute();
$resultado = $stmt->fetch(PDO::FETCH_OBJ);
return $resultado;
}
catch (PDOException $ex)
{
  echo "Erro: " . $ex->getMessage();
}
}

Any advice? MEM

0 Cevap