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());
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
