Автозаполнение в jQgrid с данными JSON, возвращаемыми страницей Php - PullRequest
1 голос
/ 30 декабря 2011

Я пытался реализовать автозаполнение для текстового поля, которое генерируется jQgrid.Страница Php будет возвращать данные JSON.Вот что я смог сделать на данный момент: (Пожалуйста, помогите)

function autocomplete_element(value, options) {
  var $ac = $('<input type="text"/>');
  $ac.val(value);
  $ac.autocomplete({
    source: function(request, response) {
        $.getJSON("autocomplete.php", { q: request.term }, response);
    }
  });
  return $ac;
}

function autocomplete_value(elem, op, value) {
  if (op == "set") {
    $(elem).val(value);
  }
  return $(elem).val();
}

$(function(){

  $("#list").jqGrid({
    url:'process1.php',
    datatype: 'xml',
    mtype: 'GET',
    colNames:['Column Name'],
    colModel :[ 
        {name:'columnid', index:'columnid', width:50, edittype:'custom', 
            editoptions: {
                custom_element : autocomplete_element,
                custom_value   : autocomplete_value
            }
        }
    ]

........
........




////////////////////////////////////////////////
///         THE PHP PAGE                    ////
////////////////////////////////////////////////
/*
    autocomplete.php
*/


<?php

    require_once("../dbconfig.php");
    $term = trim(strip_tags($_REQUEST['q']));//retrieve the search term that autocomplete sends

    $qstring = "SELECT description as value, id FROM test WHERE name LIKE '%".$term."%'";
    $result = mysql_query($qstring);//query the database for entries containing the term


    while ($row = mysql_fetch_array($result,MYSQL_ASSOC))//loop through the retrieved values
    {
        $row['id']=(int)$row['id'];
        $row['value']=htmlentities(stripslashes($row['value']));
        $row_set[] = $row;//build an array
    }

    echo json_encode($row_set);//format the array into json data

?>

Когда я использую такие данные, как ["blah", "hello", "howdy"] в источнике $ ac.autocomplete,вещь, кажется, работает хорошо.Но у меня есть около 2000 строк данных для поиска.Форма jQgrid работает правильно, и я могу добавлять и редактировать данные.Кроме того, я протестировал страницу php, которая отображает правильные данные JSON, когда я указываю на нее браузером.Я поражен только автозаполнением с данными, возвращаемыми со страницы php, так как я не очень доволен jQuery.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 07 февраля 2012

Попробуйте добавить exit () после последнего эха в коде php. Я надеюсь, что это исправит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...