Red de conocimiento informático - Material del sitio web - Cómo encapsular el método de autocompletar cuadrado en jquery en una etiqueta personalizada

Cómo encapsular el método de autocompletar cuadrado en jquery en una etiqueta personalizada

El método es el siguiente:

var caption_value = $('#caption').val();

var ajax_url = '/design_templates/edit_design_namecheck_ajax.php?'

$("#caption").autocomplete({

) título _value

$("#caption").autocomplete({

fuente: ajax_url,

foco: función (evento, ui) {

//$('#caption').val(ui.item.v);

Devuelve falso;

},

selecciona: función (evento, interfaz de usuario) {

//$('#caption' ).val (ui.item.v);

Devuelve falso

}

})

.data( "autocompletar " ). _renderItem = function( ul, item ) {

return $( "lt;ligt;lt;/ligt;" )

.data( "item.autocomplete", elemento )

.append( "lt;a style='color:" item.color "'lt;")

. item.color "'gt;" item.v "(" item.desc ")" item.star "lt;a estilo='color:". item.star "lt;/agt;" )

.appendTo( ul );

};

El siguiente es el método utilizado. Inserta el elemento en el elemento li, mientras que otros elementos como span no parecen funcionar, esto podría deberse a que el elemento a es un elemento de enlace y puede admitir clics o

autocompletar. en sí Solo apóyalo. Este método .data () especifica que es un elemento de autocompletar, _renderItem () significa representar cada dato, que se refiere a los datos devueltos por el usuario, y necesito procesarlos, donde ul es el cuadro desplegable completo , cada dato Son todos un elemento li.

Entre ellos, el elemento li está lleno de elementos lt; El elemento aquí es uno de los elementos de datos que devuelven un elemento de matriz.

Así es como se maneja en PHP:

lt;?php

setTemplate('none');

$DB = Base de datos ::connect();

$returnArr = array();

If ( isset($_GET['term'])){

$sql = "SELECCIONAR d.caption, d.design_state_id, c.caption COMO cat_caption, c.site_id DESDE diseños d

UNIRSE avq_ categorías c ON d.category_id = c.id

DONDE d.caption COMO ".mysql_quote_smart($_GET['term']. '')." ORDENAR POR c.site_id.ORDER BY c.site_id, d.caption ASC LIMIT 10".caption ASC LIMIT 10";

//echo $sql;salir;

$res = $DB-gt; consulta($sql);

$fila = mysql_fetch_assoc($res) ;

// echo 'lt; pre style="text-align: left; "gt;'; print_r($row); echo 'lt;/pregt;'; p>

hacer {

$eliminado = '';

$colorear = ' '; = 1 ) $colorear = '#278c16';

if ($row['site_id'] == 2) $colorear = '#176c8c'; [' site_id'] == 3) $ colorante = '#5f1719';

if ($row['design_state_id'] == 3) $removed = ' **'; p> if ($row['design_state_id'] == 2) $removed = ' *';

if ($row['cat_caption'] ! = '') {

//$returnString = 'lt;span style="color:'.$coloring.';"gt;' $row['caption'] .' $fila['cat_caption'] .')' . $eliminado.'lt;/spangt;';

//$returnString = $fila['caption'] ."(" . $fila[ 'cat_caption']. ")" //$returnString = $row['caption'] ..$eliminado;

$returnString = array('color'=gt;$coloring,'v'= gt;$fila['caption'], "desc" =gt;

$fila['cat_caption'], "estrella" =gt; $eliminado);

array_push($returnArr, $returnString

}

} while ($row = mysql_fetch_array($res));

//print $ returnString;

echo json_encode($returnArr);

}. gt;

Devuelto directamente desde la consulta mysql. Recuerda, debe ser una matriz en formato json.

Si hay algún error, por favor deja un mensaje.