On server side (PHP), you must create an html list element (<ul>...</ul>):


<?php
       $query = isset ( $_POST['qword'] ) ? trim ( rtrim ( $_POST['qword'] ) ) : null;
       if ( $query != null ){
               $db->Execute(" SELECT * FROM table WHERE field LIKE '%". $query ."%' ") or die($db->ErrorMsg());
               echo '<ul>';
               while ( $record = $db->fetchRow() ){
                       echo '<li>'.$record.'</li>;
               }
               echo '</ul>';
       } else {
               return '';
       }
?>

On client side (html+_javascript_) you only need to call Ajax.Autocompleter and create a <div> to display the results:

<script src="" type="text/_javascript_"></script>
<script src="" type="text/_javascript_"></script>

...

<input autocomplete="off" type="text" name="d" id="d" value="" size="20" />
<div class="auto_complete" id="d_values"></div>
<script type="text/_javascript_">
new Ajax.Autocompleter('d', 'd_values','search_ajax.php', {})
</script>


Ajax.Autocompleter documentation: http://wiki.script.aculo.us/scriptaculous/show/Ajax.Autocompleter


Bye
  Luca


On 4/15/06, Reynier Perez Mira < [EMAIL PROTECTED]> wrote:
        Hi list:
I'm a young developer that need a little help with scriptaculous "Autocompleter". I work with PRADO framework ( http://www.xisc.com) and PHP as a script language. Now this is a little function in _javascript_ for make a AJAX call and show the results without reload the entire page. See below:

1       function makeRequest(url,element) {
2               var http_request = false;
3               if (window.XMLHttpRequest) { // Mozilla, Safari,...
4                       http_request = new XMLHttpRequest();
5                       if (http_request.overrideMimeType) {
6                               http_request.overrideMimeType('text/xml');
7                       }
8               } else if (window.ActiveXObject ) { // IE
9                       try {
10                              http_request = new ActiveXObject("Msxml2.XMLHTTP");
11                      } catch (e) {
12                              try {
13                                      http_request = new ActiveXObject("Microsoft.XMLHTTP");
14                              } catch (e) {}
15                      }
16              }
17
18              if (!http_request) {
19                      alert('Información: No se ha podido crear la instancia del objeto XMLHTTP');
20                      return false;
21              }
22              http_request. { searchResult(); };
23              http_request.open('GET',"search_ajax.php?q="+element, true);
24              http_request.send(null);
25      }
26
27      function searchResult() {
28              if (http_request.readyState == 4) {
29                      if (http_request.status == 200) {
30                              alert(http_request.responseText);
31                      } else {
32                              alert('Han ocurrido problemas con la petición.');
33                      }
34              }
35      }

In search_ajax.php file I find the element in the database:
<?php
        $query = isset ( $_POST['qword'] ) ? trim ( rtrim ( $_POST['qword'] ) ) : null;
        if ( $query != null ){
                $db->Execute(" SELECT * FROM table WHERE field LIKE '%". $query ."%' ") or die($db->ErrorMsg());
                $elements = array();
                while ( $record = $db->fetchRow() ){
                        $elements[] = $record;
                }
                return $elements;
        } else {
                return 0;
        }
?>

Now in line 30 is suppose that the result must be return to original page and assign this to DIV element. See the Autocompleter doc's I found this:

<input type="text" id="autocomplete"/>
        <div id="autocomplete_choices" class="autocomplete">
        </div>
</div>

So ... in "autocomplete_choices" element I need to show the result of the query, mean I need write the $elements content in this DIV. How can I do this? Any idea?
Regards,
--
ReynierPM
4to. Ing. Informática
Linux User: #310201
El programador superhéroe aprende de compartir sus conocimientos. Es el referente de sus compañeros. Todo el mundo va a preguntarle y él, secretamente, lo fomenta porque es así como adquiere su legendaria sabiduría: escuchando ayudando a los demás...
_______________________________________________
Rails-spinoffs mailing list
[email protected]
http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs

_______________________________________________
Rails-spinoffs mailing list
[email protected]
http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs

Reply via email to