I am using the "Ajax dynamic list" http://dhtmlgoodies.com/index.html?w...x-dynamic-list and i think its the best out there. I have found a compatibility issue maybe one of you can help me out on.
In this html i use a text field to collect info. when a user types, *ajax_showOptions()* shows the option perfectly. once an item is selected and i move from the field, *makeRequest()*, my set variable to database php page is triggered and it saves to the database properly. my problem is that the value saved to the database is only the first few charaters *ajax_showOptions()* used to fill the dropdown. Example, if i type, *ce* the dropdown show *cesar*, i choose *cesar* and the database sets *ce*.
So my question is how do i get the database to set the full value in the textfield. How do i get *this.value* in makeRequest() to be the full value. Thanks.
Here is my html.
Expand|Select|Wrap|Line Numbers
- <input onkeyup="ajax_showOptions(this,'company_name',event)" type="text" id="company_name" name="company_name" value='' onblur="javascript:makeRequest('ajax_edit_company.php?valu=',this.value);">
The *ajax_showOptions()* script is unchanged from link above. Here is the *makeRequest()* script. This script is working great as is, besides possibly the current issue.
Expand|Select|Wrap|Line Numbers
- <script type="text/javascript" language="javascript">
- var http_request = false;
- function makeRequest(url, parameters) {
- http_request = false;
- if (window.XMLHttpRequest) { // Mozilla, Safari,...
- http_request = new XMLHttpRequest();
- if (http_request.overrideMimeType) {
- // set type accordingly to anticipated content type
- //http_request.overrideMimeType('text/xml');
- http_request.overrideMimeType('text/html');
- }
- } else if (window.ActiveXObject) { // IE
- try {
- http_request = new ActiveXObject("Msxml2.XMLHTTP");
- } catch (e) {
- try {
- http_request = new ActiveXObject("Microsoft.XMLHTTP");
- } catch (e) {}
- }
- }
- if (!http_request) {
- alert('Cannot create XMLHTTP instance');
- return false;
- }
- http_request.onreadystatechange = alertContents;
- http_request.open('GET', url + parameters, true);
- http_request.send(null);
- }
- function alertContents() {
- if (http_request.readyState == 4) {
- if (http_request.status == 200) {
- //alert(http_request.responseText);
- result = http_request.responseText;
- document.getElementById('myspan').innerHTML = result;
- } else {
- alert('There was a problem with the request.');
- }
- }
- }
- function get(obj) {
- var getstr = "?";
- for (i=0; i<obj.childNodes.length; i++) {
- if (obj.childNodes[i].tagName == "INPUT") {
- if (obj.childNodes[i].type == "text") {
- getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
- }
- if (obj.childNodes[i].type == "checkbox") {
- if (obj.childNodes[i].checked) {
- getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
- } else {
- getstr += obj.childNodes[i].name + "=&";
- }
- }
- if (obj.childNodes[i].type == "radio") {
- if (obj.childNodes[i].checked) {
- getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
- }
- }
- }
- if (obj.childNodes[i].tagName == "SELECT") {
- var sel = obj.childNodes[i];
- getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
- }
- if (obj.childNodes[i].type == "textarea") {
- getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
- }
- }
- makeRequest('get.php', getstr);
- }
- </script>