www.webdeveloper.com
Results 1 to 1 of 1

Thread: Cannot Search html table

  1. #1
    Join Date
    May 2011
    Posts
    1

    Cannot Search html table

    Hi,

    I am having a problem. I have a HTML table on my webpage but I am having trouble searching it from my main homepage using a HTML form.

    The html form on the homepage is:
    Code:
    <html>
    <body>
    <form method="post" action="http://www.example.com/sites/default/files/html_table.html"
    <input type="text" size="30" maxlength="1000" value="" id="textBoxSearch" onkeyup="tableSearch.search(event);" />
    <input type="submit" value="Search" onclick="tableSearch.runSearch();" />
    </body>
    </html>
    I have a search working fine on the html page and javascript functions conducting the search as shown here:
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title>JavaScript Search</title>
    <style type="text/css">
    body { font-family: Arial; font-size: 11px; }
    td { font-family: Arial; font-size: 11px; }
    th { font-family: Arial; font-size: 11px; background-color: #c8c8c8; }
    input { font-family: Arial; font-size: 11px; }
    </style>
    <script language="javascript" type="text/javascript">
    //define the table search as an object, which can implement both functions and properties
    window.tableSearch = {};
    
    //initialize the search, setup the current object
    tableSearch.init = function() {
    //define the properties I want on the tableSearch object
    this.Rows = document.getElementById('data').getElementsByTagName('TR');
    this.RowsLength = tableSearch.Rows.length;
    this.RowsText = [];
    
    //loop through the table and add the data to
    for (var i = 0; i < tableSearch.RowsLength; i++) {
    this.RowsText[i] = (tableSearch.Rows[i].innerText) ? tableSearch.Rows[i].innerText.toUpperCase() : tableSearch.Rows[i].textContent.toUpperCase();
    }
    }
    
    //onlys shows the relevant rows as determined by the search string
    tableSearch.runSearch = function() {
    //get the search term
    this.Term = document.getElementById('textBoxSearch').value.toUpperCase();
    
    //loop through the rows and hide rows that do not match the search query
    for (var i = 0, row; row = this.Rows[i], rowText = this.RowsText[i]; i++) {
    row.style.display = ((rowText.indexOf(this.Term) != -1) || this.Term === '') ? '' : 'none';
    }
    }
    
    //runs the search
    tableSearch.search = function(e) {
    //checks if the user pressed the enter key, and if they did then run the search
    var keycode;
    if (window.event) { keycode = window.event.keyCode; }
    else if (e) { keycode = e.which; }
    else { return false; }
    if (keycode == 13) {
    tableSearch.runSearch();
    }
    else { return false; }
    }
    </script>
    </head>
    
    
    <body onload="tableSearch.init();">
    <table border="0" cellpadding="0" cellspacing="0">
    <tbody>
    <tr>
    <td>
    <input type="text" size="30" maxlength="1000" value="" id="textBoxSearch" onkeyup="tableSearch.search(event);" />
    <input type="button" value="Search" onclick="tableSearch.runSearch();" />
    </td>
    </tr>
    </tbody>
    </table>
    <br />
    <table border="1" cellpadding="2" cellspacing="0">
    <tr>
    <th>ID</th>
    <th>First Name</th>
    <th>Surname</th>
    <th>Website</th>
    </tr>
    <tbody id="data">
    <tr>
    <td>1</td>
    <td>Heathesh</td>
    <td>Bhandari</td>
    <td><a href="http://heathesh.com">http://heathesh.com</a></td>
    </tr>
    <tr>
    <td>2</td>
    <td>Candice</td>
    <td>David</td>
    <td><a href="http://candicedavid.com">http://candicedavid.com</a></td>
    </tr>
    </tbody>
    </table>
    </body>
    </html>
    If anybody could help me please! I have run out of ideas
    Last edited by Kor; 05-18-2011 at 06:42 AM. Reason: wrap the code [code][/code]

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



Recent Articles