www.webdeveloper.com
Results 1 to 1 of 1

Thread: JQuery Autocomplete - multiple terms?

  1. #1
    Join Date
    Apr 2011
    Location
    Accelerating Windows at 9.81 m/s....
    Posts
    33

    JQuery Autocomplete - multiple terms?

    DanInMA suggested I start a new thread

    I've got a fine looking search box with a JQuery autocomplete that looks impressive at first glance.

    I'm trying to make it work for multiple terms --- "foobar" works fine, but the script stops matching and suggesting (in the browser) after a space, so "foobar baz" won't be matched. Watching in Firebug, I see the serviceURL is still providing matching data, so I'm pretty sure the problem is located somewhere on the Javascript side. I've spent more time than I should reading similar threads in places like StackOverflow and have a thread over at PHPBuilder as well, but the last advice there was that I should use PHP's json_encode() ... and that's not the point ... AAMOF it's not been working with json_encode.

    Anyway, here's the stuff:

    In the HTML header of the search page:

    Code:
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="includes/jquery.autocomplete.js"></script>
    I've attached the latter *js file.

    In the page itself:
    Code:
    <script type="text/javascript">
        var a = $('#searchbox').autocomplete({
        serviceUrl:'autocomplete.php',
        minChars:3,
        multiple: true,
        multipleSeparator: " ",
        delimiter: /(,|;)\s*/, // regex or character
        maxHeight:400,
        width:300,
        zIndex: 9999,
        deferRequestBy: 0, //miliseconds
        noCache: false //default is false, set to true to disable caching
        //callback function:
        // local autosugest options:
        //local lookup values
    });
    </script>
    Here's Autocomplete.php:
    PHP Code:
    <?php

    // autocomplete.php --- feeds suggestions to
    // the AJAX autocomplete (Java)script on our searchbox.

    /* According to the docs for the JQuery plugin, we must
       echo the output EXACTLY as shown (a modified JSON).
       Third list ("data") is optional.
    {
     query:'Li',
     suggestions:['Liberia','Libyan Arab Jamahiriya','Liechtenstein','Lithuania'],
     data:['LR','LY','LI','LT']
    }
    */

    // connect to the DB
    include "includes/functions/db.func.php";
    $connect=dbConn();
    if (!
    $connect) die("DB connection failed");

    if(isset(
    $_GET['query']) && $_GET['query'] != '') {
       
    $jsonout=array();
       
    $qr=($_GET['query']);
       
    $qr=urlencode(mysql_escape_string($qr));
       
    $dbquery="select title from our_table where live=1 and title like '%$qr%' limit 15";
       
    $result mysql_query($dbquery);
       if (!
    $result) exit;
       
    $replacer=array("\n","\r\n","<br>","<br />","<BR>");
       while (
    $row mysql_fetch_row($result)) {
          
    $jsonout[] = str_replace($replacer," ",urldecode($row[0]));
       }
       
       
    // return the array as json with PHP
       
    echo "{
        query:'"
    .$qr."',
        suggestions:["
    ;
       
       
    $counter=1$count=count($jsonout);
       foreach (
    $jsonout as $jj) {
          echo 
    "'".$jj."'";
          if (
    $counter<$count) {
             echo 
    ",";
          }
          
    $counter++;
       }
       echo 
    "]
       }
       "
    ;
    }
    // logging routine omitted
    ?>
    Thanks very much, in advance, for any hints or clue-stick clobbers.
    Last edited by dalecosp; 05-09-2012 at 10:50 AM.
    dalecosp
    "God doesn't play dice." --- Albert Einstein
    "Perl is hardly a paragon of beautiful syntax." --- Weedpacket, on PHPBuilder

    Getting Help at All! --- PHP Debugging 101 --- Search the board before posting a new thread --- R.T.F.M. (the 'friendly' {PHP!!!} manual, in English) --- OMBE: Office Machines, Business Equipment

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center

"

"

X vBulletin 4.2.2 Debug Information

  • Page Generation 0.46830 seconds
  • Memory Usage 2,867KB
  • Queries Executed 15 (?)
More Information
Template Usage (33):
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (2)bbcode_code
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (1)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (71):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • bbcode_parse_start
  • postbit_imicons
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates