일 때 사용자 정의 데이터의 형식을 지정하고 자동 완성으로 표시하려면 어떻게해야합니까? JQuery UI 데모 Demo에 표시된 것처럼 자동 완성 위젯에 대한 정보를 얻으려고 시도 할 때 유일한 문제는 변수를 표시하고자하는 데이터로 채울 때 대신 데이터베이스와 MySQL에있는 데이터베이스를 사용하여 다른 설명과 자료에 액세스하려고합니다.이를 위해 소스를 변경하여 정보를 조회하는 다른 PHP 페이지를 사용합니다. 여기에 자동 완성을위한 코드가 있는데, 나는이 메소드를 이해하지 못하므로 기본 검색에서 변경하지 않았습니다. ?소스가 DB
<?php
$conec = mysql_connect(localhost, root, admin);
if(!$conec)
{
die(mysql_error());
}
else
{
$bd = mysql_select_db("ve_test",$conec);
if(!$bd)
{
die(mysql_error());
}
}
$termino = trim(strip_tags($_GET['term']));//Obtener el termino que envia el autocompletar
$qstring = "SELECT name, descripcion FROM VE_table WHERE name LIKE '%".$termino."%'";
$result = mysql_query($qstring);//Solicitud a la Base de Datos
while ($row = mysql_fetch_array($result,MYSQL_ASSOC))//Realizar un LOOP sobre los valores obtenidos
{
$row['value']=htmlentities(stripslashes($row['name']));
$row_set[] = $row;//build an array
}
echo json_encode($row_set);//Enviar los datos al autocompletar en codificacion JSON, Altamente Necesario.
이>
이
왜 스트립 슬래시()입니까? 왜 htmlentities()인가? 둘 다 출력 컨텍스트에서 적절한 이스케이프 처리가되지 않습니다. – Sven
만약 내가 틀렸어도 stripslashes는 SQL 쿼리에 올 수있는 모든 여분의 데이터를 제거하는 것이고 htmlentities는 올바른 HTML로 포맷하는 것입니다. –
틀렸어. 쿼리 결과에는 데이터베이스를 일반 텍스트 만 포함 할 것으로 예상되므로 제거해야 할 슬래시가 없습니다. 데이터베이스가 작동하지 않으면 솔루션은 이후에 수정하지 않고 전에 수정해야합니다. htmlentities() 들어, 내 대답을 참조하십시오 : http://stackoverflow.com/questions/12713702/php-recursive-htmlspecialchars-on-object/12713775#12713775 – Sven