Wow...thanks to all who have given feedback and suggestions on this...I 
really appreciate it...

Here's how I got a small amount AJAX to work using CGIDEV2...

HTML file ajaxtest.html
-----------------------
<html>
<head>
<script src="firstnameajax.js"></script>
</head>

<body>

<form>
First Name:
<input type="text" id="txt1"
onkeyup="showHint(this.value)">
</form>

<p>Suggestions: <span id="txtHint"></span></p>

</body>
</html> 


Javascript file firstnameajax.js
--------------------------------
var xmlHttp

function showHint(str) {
  if (str.length==0) { 
    document.getElementById("txtHint").innerHTML="";
    return;
  }
  xmlHttp = GetXmlHttpObject();
  if (xmlHttp==null) {
    alert ("Browser does not support HTTP Request");
    return;
  } 
  var url = "/cgi-bin/ajxfirstnm";
  url = url + "?q=" + str;
  url = url + "&sid=" + Math.random();
  xmlHttp.onreadystatechange = stateChanged;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
}

function stateChanged() { 
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") { 
    document.getElementById("txtHint").innerHTML = xmlHttp.responseText;
  } 
} 

function GetXmlHttpObject() { 
  var objXMLHttp = null;
  if (window.XMLHttpRequest) {
    objXMLHttp = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  return objXMLHttp;
}

SQLRPGLE Program AJXFIRSTNM
---------------------------
     h bnddir('CGIBIN/CGIDEV2BND') datfmt(*USA) timfmt(*HMS)
     h dftactgrp(*no) actgrp('AJAX') bnddir('TEMPLATE2':'QC2LE')
      
//--------------------------------------------------------------------
      // Prototypes
      
//--------------------------------------------------------------------
      /copy cgidev2/qrpglesrc,prototypeb
      /copy cgidev2/qrpglesrc,variables3
      /copy cgidev2/qrpglesrc,usec
     d init            pr
     d tobrowser       pr                  extproc('QtmhWrStout')
     d  data                               like(outxml)
     d  length                       10i 0 const
     d  error                              like(gerror)
     d getFirstNames   pr           500a
     d                               20a
      
//--------------------------------------------------------------------
      // Data Structures
      
//--------------------------------------------------------------------
     d gerror          ds                  qualified
     d  bytesp                       10i 0 inz(56)
     d  bytesa                       10i 0
     d  msgid                         7
     d  reserved                      1
     d  data                         40
      
//--------------------------------------------------------------------
      // Global Variables
      
//--------------------------------------------------------------------
     d path            s           1024a   inz
     d q               s             20a   inz
     d q2              s             20a   inz
     d outxml          s            256a
      /copy qrpglesrc,#constants
      
//--------------------------------------------------------------------
      // main
      
//--------------------------------------------------------------------
      /free
       init();
       if q = *blanks;
         outxml = 'Content-Type: text/plain' + x'1515' + '&nbsp;';
       else;
         q2 = %trim(q) + '%';
         outxml = 'Content-Type: text/plain' + x'1515' +
                  getFirstNames(q2);
       endif;
       tobrowser(outxml:%len(%trim(outxml)):gerror);
       return;
      /end-free
      
//--------------------------------------------------------------------
      // init
      
//--------------------------------------------------------------------
     pinit             b
     d                 pi
      /copy qcopysrc,prolog3
      /free
       q = zhbgetvar('q');
      /end-free
     pinit             e
      
//--------------------------------------------------------------------
      // getFirstNames
      
//--------------------------------------------------------------------
     pgetFirstNames    b
     d                 pi           500a
     d parm                          20a
     d string          s            500a   inz
     d name            s             50a   inz
     d spacepos        s              2p 0 inz
     c/exec sql
      + declare names cursor for
      +  select distinct usrdesc
      +   from nalcustom/users
      +    where usrdesc like :parm
      +     order by usrdesc
     c/end-exec
      /free
       exsr $open;
       exsr $fetch;
       dow sqlcod = 0;
         spacepos = %scan(' ':name);
         if spacepos > 0 and %scan(%subst(name:1:spacepos-1):string) = 0;
           string = %trim(string) + %subst(name:1:spacepos-1) + '<br>';
         endif;
         exsr $fetch;
       enddo;
       exsr $close;
       return string;
      /end-free
      
//--------------------------------------------------------------------
      // $open
      
//--------------------------------------------------------------------
     c     $open         begsr
     c/exec sql
      + open names
     c/end-exec
     c                   endsr
      
//--------------------------------------------------------------------
      // $fetch
      
//--------------------------------------------------------------------
     c     $fetch        begsr
     c/exec sql
      + fetch from names into :name
     c/end-exec
     c                   endsr
      
//--------------------------------------------------------------------
      // $close
      
//--------------------------------------------------------------------
     c     $close        begsr
     c/exec sql
      + close names
     c/end-exec
     c                   endsr
     pgetFirstNames    e 


Thanks again to all who helped me...hope this helps others...

Shane Cessna

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.