JSON или XML в любом случае мне нужно отформатировать массив JS из URL - PullRequest
0 голосов
/ 26 мая 2011

Я использую плагин JQuery Autocomplete , и мне нужна помощь в форматировании доступных мне данных У меня есть URL, который может выводить данные в формате XML или JSON:

Пример JSON:

[{"location":{"address":"Dortha Pike","city":"Emmerichburgh","created_at":"2011-05-19T00:03:20Z","id":3,"name":"Caroline Fahey DDS","state":"Illinois","updated_at":"2011-05-19T00:03:20Z","zip":"80822-2018"}}

Пример XML:

<locations type="array">
<location>
<address>Dortha Pike</address>
<city>Emmerichburgh</city>
<created-at type="datetime">2011-05-19T00:03:20Z</created-at>
<id type="integer">3</id>
<name>Caroline Fahey DDS</name>
<state>Illinois</state>
<updated-at type="datetime">2011-05-19T00:03:20Z</updated-at>
<zip>80822-2018</zip>
</location>

Функция ниже принимает данные в массиве JS. Моя проблема в том, что мне нужно взять любую из приведенных выше данных и отформатировать их так, как вы видите ниже: $(document).ready(function(){ var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" "); $("#example").autocomplete(data); });

1 Ответ

0 голосов
/ 26 мая 2011

Если вы используете автозаполнение, я думаю, что вы используете, строка, разделенная пробелами, является только одним форматом ... вы можете использовать JSON, если у вас есть конкретные имена для переменных.

$item =  $item . "{ \"id\": \"$id\", \"label\": \"$name\"},";

Такв вашем случае вам нужно выбрать поле, например имя, и разобрать все имена в строку, например:

   [
    {
        "id": 1,
        "label": "Caroline Fahey DDS"
    },
    {
        "id": "2",
        "label": "Another Name"
    }
   ]

Это может вам в этом помочь, просто убедитесь, что строка работает в первую очередь, так как это может бытьдругой плагин.

РЕДАКТИРОВАТЬ: Приведенный пример

ответ php / ajax

<?php
$q = getGET("term");
if($q != "")
{
  $q = fquery_sanitize($q);
  $sql = "select ManufacturerID, ManufacturerName from sds_manufacturer ". 
         " where ManufacturerName LIKE '%$q%' ".
         " order by ManufacturerName";
  $result = fquery_db($sql);
  $item= "";
  while($row=mysql_fetch_assoc($result))
  {
    $id = $row["ManufacturerID"];
    $name = $row["ManufacturerName"];
    $item =  $item . "{ \"id\": \"$id\", \"label\": \"$name\"},";
  }
  echo "["; 
  echo trim($item, ",");
  echo "]";
}

?>

Автозаполнение

$('.manufacturer-form .name').autocomplete({
          source: "/portal/inc/prod_manage/man-list-json.php",
            minLength: 3,
            select: function( event, ui ) {
                     manufacturer_select(ui.item.id);
          }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...