Search

From nuBuilderForte
Jump to navigation Jump to search

Back to Documentation

Introduction

  • Search is a part of every Browse Form.
  • If a special search is to be performed, then call a hidden PHP Procedure and return false and directly execute nuForm().
  • nuOnSearchAction() has been recently introduced in nuBuilder v4.5 that is similar to nuBeforeSave(), parts of the latter can be used in the former.
  • Encrypting needs to be server-side as if it is in the client side, it will be exposed in the html source in the browser.
  • Or maybe add an additional button like Search SSN that calls the PHP Procedure will still enable search for strings that are not encrypted using nubuilder's search button as well (See Reference Code section here).

Example

  • Sample Code:
function nuOnSearchAction() {
    
    nuRunPHPHidden('php_procedure', 0);
    return false;
    
}
  • The search string doesn't exist in nuHash() so it must be set as a Hash Cookie (in order to access it in PHP) with
    nuSetProperty('nuSearchField', $('#nuSearchField').val());

Reference Code

  • Use a separate search button to search for an encrypted string (SSN).
  • In this way, searching for unencrypted values will still work as usual.
  • In the form's Custom Code:
    function nuOnSearchAction() {
       
        window.originalSearchString = undefined;
        return true;
       
    }

    function searchSSN() {
       
           // Store the Search String in a Hash Cookie nuSearchField
           nuSetProperty('nuSearchField', $('#nuSearchField').val());

           // Run the PHP Procedure searchSSN
           nuRunPHPHidden("searchSSN",0);
           
    }

    if(nuFormType() == 'browse'){

           // Add an additional button "Search SSN" next to the other action buttons
           if (window.originalSearchString !== undefined) {
                $('#nuSearchField').val(window.originalSearchString);
           }
           
           nuAddActionButton('nuRunPHPHidden', 'Search SSN', 'searchSSN();');
           
    }
  • Create a PHP Procedure with

    function encryptString($text) {
       
       
       // Use any encryption algorithm and return the encrypted string
       // For demonstration purposes, add 123 to the search string
       $text = $text. '123';
       
       return $text;
    }


    $e = encryptString("#nuSearchField#");

    $js =

    "
      window.originalSearchString = '#nuSearchField#';
      nuForm(nuGetProperty('form_id'),'' , '', '$e', '0');

    ";

    nuJavascriptCallback($js);