PHPackages                             exactquery/searchable - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Search &amp; Filtering](/categories/search)
4. /
5. exactquery/searchable

Abandoned → [deviscoding/searchable](/?search=deviscoding%2Fsearchable)Library[Search &amp; Filtering](/categories/search)

exactquery/searchable
=====================

Vanilla JS classes for managing search fields, as well as searching DOM elements and JSON sources.

3.0(3y ago)031MITJavaScript

Since Apr 24Pushed 2y ago1 watchersCompare

[ Source](https://github.com/jonesiscoding/searchable)[ Packagist](https://packagist.org/packages/exactquery/searchable)[ Docs](https://www.github.com/jonesiscoding/searchable)[ RSS](/packages/exactquery-searchable/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (3)DependenciesVersions (6)Used By (0)

searchable
==========

[](#searchable)

Vanilla JS classes for search field callbacks, searching dom elements, and ajax queries.

SearchInput Usage
-----------------

[](#searchinput-usage)

Normally, this class is used with either `DomSearch` or `AjaxSearch`, however it may also be used independently using the syntax given below:

```
let el = document.getElementById('');
let searchCallback = function(query) { console.log('you searched for' +  query); };
let clearCallback = function() { console.log('you cleared your search.'; };
let _ = new SearchInput(el, { search: searchCallback, clear: clearCallback });

```

DomSearch Usage
---------------

[](#domsearch-usage)

Given this HTML:

```

    things
    things and stuff
    stuff

```

This Javascript would use the class to filter rows based on the entry into the `#searchWithMe` input:

```
let si = document.getElementById('searchWithMe');
let fn = function(isFound) { this.toggleAttribute('hidden', !isFound); }
let _ = new DomSearch(si, { target: '#content tr', result: fn });

```

AjaxSearch Usage
----------------

[](#ajaxsearch-usage)

The code below is an example of how the `AjaxSearch` class could be used:

```
let si = document.getElementById('searchWithMe');
let fnResults = function(data) {  };
let fnReset = function() {  };
let _ = new AjaxSearch(si, { results: fnResults, reset: fnReset });

```

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~436 days

Total

5

Last Release

1199d ago

Major Versions

v2.x-dev → 3.02023-01-31

### Community

Maintainers

![](https://www.gravatar.com/avatar/d57a7df632f0f3297af28804aa4d48a6c9bbd67795056353fb3dd8c7ed7e1cb5?d=identicon)[jonesiscoding](/maintainers/jonesiscoding)

---

Top Contributors

[![jonesiscoding](https://avatars.githubusercontent.com/u/5215554?v=4)](https://github.com/jonesiscoding "jonesiscoding (11 commits)")

---

Tags

searchjavascriptdomcallbackajaxfind

### Embed Badge

![Health badge](/badges/exactquery-searchable/health.svg)

```
[![Health](https://phpackages.com/badges/exactquery-searchable/health.svg)](https://phpackages.com/packages/exactquery-searchable)
```

###  Alternatives

[elasticsearch/elasticsearch

PHP Client for Elasticsearch

5.3k178.3M943](/packages/elasticsearch-elasticsearch)[clue/stream-filter

A simple and modern approach to stream filtering in PHP

1.7k261.7M7](/packages/clue-stream-filter)[ruflin/elastica

Elasticsearch Client

2.3k50.4M203](/packages/ruflin-elastica)[solarium/solarium

PHP Solr client

93532.7M98](/packages/solarium-solarium)[opensearch-project/opensearch-php

PHP Client for OpenSearch

15024.3M65](/packages/opensearch-project-opensearch-php)[rap2hpoutre/similar-text-finder

Fuzzy Search, similar text finder: "Did you mean `foo` ?"

13877.7k3](/packages/rap2hpoutre-similar-text-finder)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
