Results 1 to 10 of 10
  1. #1
    Join Date
    Jul 2004
    Posts
    494

    Unanswered: populating 3 listboxes

    I was converting old asp files to php.

    But I'm stuck at this point.

    I'm looking for a triple combo listboxes where one has "book" the other "chapter" and the third "verse". The book is populated by a database table. Once book is selected then chapter is populated and then verse.

    Any tutorial related to this?
    Compare bible texts (and other tools):
    TheWheelofGod

  2. #2
    Join Date
    Nov 2004
    Location
    out on a limb
    Posts
    13,692
    Provided Answers: 59
    for that sort of technique try
    javascript
    or AJAX (whihc inlcudes Javascript in its toolbox
    but not standard server side PHP scripts.. PHP can provide the data but HTML cannot handle the processing without using some client side scripting via Javascript

  3. #3
    Join Date
    Jul 2004
    Posts
    494
    I'm looking at:
    http://www.dhtmlgoodies.com/index.ht...chained_select

    When I test it it shows error:
    Error: sack is not defined
    Source File: .../listboxcombo/listcom.php
    Line: 54
    listcom.php
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    
    <style type="text/css">
    body{
    	background-repeat:no-repeat;
    	font-family: Trebuchet MS, Lucida Sans Unicode, Arial, sans-serif;
    	height:100%;
    	background-color: #FFF;
    	margin:0px;
    	padding:0px;
    }
    select{
    	width:150px;
    }
    </style>
    <script type="text/javascript" src="ajax.js"></script>
    <script type="text/javascript">
    /************************************************************************************************************
    Ajax chained select
    Copyright (C) 2006  DTHMLGoodies.com, Alf Magne Kalleland
    
    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.
    
    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.
    
    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    
    Dhtmlgoodies.com., hereby disclaims all copyright interest in this script
    written by Alf Magne Kalleland.
    
    Alf Magne Kalleland, 2006
    Owner of DHTMLgoodies.com
    
    
    ************************************************************************************************************/	
    var ajax = new Array();
    
    function getCityList(sel)
    {
    	var countryCode = sel.options[sel.selectedIndex].value;
    	document.getElementById('dhtmlgoodies_city').options.length = 0;	// Empty city select box
    	if(countryCode.length>0){
    		var index = ajax.length;
    		ajax[index] = new sack();
    		
    		ajax[index].requestFile = 'getCities.php?countryCode='+countryCode;	// Specifying which file to get
    		ajax[index].onCompletion = function(){ createCities(index) };	// Specify function that will be executed after file has been found
    		ajax[index].runAJAX();		// Execute AJAX function
    	}
    }
    
    function createCities(index)
    {
    	var obj = document.getElementById('dhtmlgoodies_city');
    	eval(ajax[index].response);	// Executing the response from Ajax as Javascript code	
    }
    
    
    function getSubCategoryList(sel)
    {
    	var category = sel.options[sel.selectedIndex].value;
    	document.getElementById('dhtmlgoodies_subcategory').options.length = 0;	// Empty city select box
    	if(category.length>0){
    		var index = ajax.length;
    		ajax[index] = new sack();
    		
    		ajax[index].requestFile = 'getSubCategories.php?category='+category;	// Specifying which file to get
    		ajax[index].onCompletion = function(){ createSubCategories(index) };	// Specify function that will be executed after file has been found
    		ajax[index].runAJAX();		// Execute AJAX function
    	}
    }
    function createSubCategories(index)
    {
    	var obj = document.getElementById('dhtmlgoodies_subcategory');
    	eval(ajax[index].response);	// Executing the response from Ajax as Javascript code	
    }		
    </script>
    
    
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>
    
    <body>
    
    <form action="" method="post">
    <table>
    	<tr>
    		<td>Country: </td>
    		<td><select id="dhtmlgoodies_country" name="dhtmlgoodies_country" onchange="getCityList(this)">
    			<option value="">Select a country</option>
    			<option value="dk">Denmark</option>
    			<option value="no">Norway</option>
    			<option value="us">US</option>
    		</select>
    		</td>
    	</tr>
    	<tr>
    		<td>City: </td>
    		<td><select id="dhtmlgoodies_city" name="dhtmlgoodies_city">
    		
    		</select>
    		</td>
    	</tr>
    	<tr>
    		<td colspan="2"><b>Second example</b></td>
    	</tr>
    	<tr>
    		<td>Category: </td>
    		<td><select id="dhtmlgoodies_category" name="dhtmlgoodies_category" onchange="getSubCategoryList(this)">
    			<option value="">Select a category</option>
    			<option value="1">Cars</option>
    			<option value="2">Boats</option>
    			<option value="3">Airplanes</option>
    		</select>
    		</td>
    	</tr>
    	<tr>
    		<td>Sub category: </td>
    		<td><select id="dhtmlgoodies_subcategory" name="dhtmlgoodies_subcategory">
    		
    		</select>
    		</td>
    	</tr>
    </table>
    </form>
    
    
    </body>
    </html>
    more to come.
    Compare bible texts (and other tools):
    TheWheelofGod

  4. #4
    Join Date
    Jul 2004
    Posts
    494
    getCities.php
    PHP Code:
    <?php

    if(isset($_GET['countryCode'])){
      
      switch(
    $_GET['countryCode']){
        
        case 
    "no":
          echo 
    "obj.options[obj.options.length] = new Option('Bergen','1');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Haugesund','2');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Oslo','3');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Stavanger','4');\n";
          
          break;
        case 
    "dk":
          
          echo 
    "obj.options[obj.options.length] = new Option('Aalborg','11');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Copenhagen','12');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Odense','13');\n";
          
          break;
        case 
    "us":
          
          echo 
    "obj.options[obj.options.length] = new Option('Atlanta','21');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Chicago','22');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Denver','23');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Los Angeles','24');\n";
          echo 
    "obj.options[obj.options.length] = new Option('New York','25');\n";
          echo 
    "obj.options[obj.options.length] = new Option('San Fransisco','26');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Seattle','27');\n";
          
          break;
      }  
    }

    ?>
    Compare bible texts (and other tools):
    TheWheelofGod

  5. #5
    Join Date
    Jul 2004
    Posts
    494
    js/ajax.js
    Code:
    // JavaScript Document
    /* Simple AJAX Code-Kit (SACK) v1.6.1 */
    /* 2005 Gregory Wild-Smith */
    /* www.twilightuniverse.com */
    /* Software licenced under a modified X11 licence,
       see documentation or authors website for more details */
    
    function sack(file) {
    	this.xmlhttp = null;
    
    	this.resetData = function() {
    		this.method = "POST";
      		this.queryStringSeparator = "?";
    		this.argumentSeparator = "&";
    		this.URLString = "";
    		this.encodeURIString = true;
      		this.execute = false;
      		this.element = null;
    		this.elementObj = null;
    		this.requestFile = file;
    		this.vars = new Object();
    		this.responseStatus = new Array(2);
      	};
    
    	this.resetFunctions = function() {
      		this.onLoading = function() { };
      		this.onLoaded = function() { };
      		this.onInteractive = function() { };
      		this.onCompletion = function() { };
      		this.onError = function() { };
    		this.onFail = function() { };
    	};
    
    	this.reset = function() {
    		this.resetFunctions();
    		this.resetData();
    	};
    
    	this.createAJAX = function() {
    		try {
    			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    		} catch (e1) {
    			try {
    				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    			} catch (e2) {
    				this.xmlhttp = null;
    			}
    		}
    
    		if (! this.xmlhttp) {
    			if (typeof XMLHttpRequest != "undefined") {
    				this.xmlhttp = new XMLHttpRequest();
    			} else {
    				this.failed = true;
    			}
    		}
    	};
    
    	this.setVar = function(name, value){
    		this.vars[name] = Array(value, false);
    	};
    
    	this.encVar = function(name, value, returnvars) {
    		if (true == returnvars) {
    			return Array(encodeURIComponent(name), encodeURIComponent(value));
    		} else {
    			this.vars[encodeURIComponent(name)] = Array(encodeURIComponent(value), true);
    		}
    	}
    
    	this.processURLString = function(string, encode) {
    		encoded = encodeURIComponent(this.argumentSeparator);
    		regexp = new RegExp(this.argumentSeparator + "|" + encoded);
    		varArray = string.split(regexp);
    		for (i = 0; i < varArray.length; i++){
    			urlVars = varArray[i].split("=");
    			if (true == encode){
    				this.encVar(urlVars[0], urlVars[1]);
    			} else {
    				this.setVar(urlVars[0], urlVars[1]);
    			}
    		}
    	}
    
    	this.createURLString = function(urlstring) {
    		if (this.encodeURIString && this.URLString.length) {
    			this.processURLString(this.URLString, true);
    		}
    
    		if (urlstring) {
    			if (this.URLString.length) {
    				this.URLString += this.argumentSeparator + urlstring;
    			} else {
    				this.URLString = urlstring;
    			}
    		}
    
    		// prevents caching of URLString
    		this.setVar("rndval", new Date().getTime());
    
    		urlstringtemp = new Array();
    		for (key in this.vars) {
    			if (false == this.vars[key][1] && true == this.encodeURIString) {
    				encoded = this.encVar(key, this.vars[key][0], true);
    				delete this.vars[key];
    				this.vars[encoded[0]] = Array(encoded[1], true);
    				key = encoded[0];
    			}
    
    			urlstringtemp[urlstringtemp.length] = key + "=" + this.vars[key][0];
    		}
    		if (urlstring){
    			this.URLString += this.argumentSeparator + urlstringtemp.join(this.argumentSeparator);
    		} else {
    			this.URLString += urlstringtemp.join(this.argumentSeparator);
    		}
    	}
    
    	this.runResponse = function() {
    		eval(this.response);
    	}
    
    	this.runAJAX = function(urlstring) {
    		if (this.failed) {
    			this.onFail();
    		} else {
    			this.createURLString(urlstring);
    			if (this.element) {
    				this.elementObj = document.getElementById(this.element);
    			}
    			if (this.xmlhttp) {
    				var self = this;
    				if (this.method == "GET") {
    					totalurlstring = this.requestFile + this.queryStringSeparator + this.URLString;
    					this.xmlhttp.open(this.method, totalurlstring, true);
    				} else {
    					this.xmlhttp.open(this.method, this.requestFile, true);
    					try {
    						this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
    					} catch (e) { }
    				}
    
    				this.xmlhttp.onreadystatechange = function() {
    					switch (self.xmlhttp.readyState) {
    						case 1:
    							self.onLoading();
    							break;
    						case 2:
    							self.onLoaded();
    							break;
    
    						case 3:
    							self.onInteractive();
    							break;
    						case 4:
    							self.response = self.xmlhttp.responseText;
    							self.responseXML = self.xmlhttp.responseXML;
    							self.responseStatus[0] = self.xmlhttp.status;
    							self.responseStatus[1] = self.xmlhttp.statusText;
    
    							if (self.execute) {
    								self.runResponse();
    							}
    
    							if (self.elementObj) {
    								elemNodeName = self.elementObj.nodeName;
    								elemNodeName.toLowerCase();
    								if (elemNodeName == "input"
    								|| elemNodeName == "select"
    								|| elemNodeName == "option"
    								|| elemNodeName == "textarea") {
    									self.elementObj.value = self.response;
    								} else {
    									self.elementObj.innerHTML = self.response;
    								}
    							}
    							if (self.responseStatus[0] == "200") {
    								self.onCompletion();
    							} else {
    								self.onError();
    							}
    
    							self.URLString = "";
    							break;
    					}
    				};
    
    				this.xmlhttp.send(this.URLString);
    			}
    		}
    	};
    
    	this.reset();
    	this.createAJAX();
    }
    Compare bible texts (and other tools):
    TheWheelofGod

  6. #6
    Join Date
    Jul 2004
    Posts
    494
    ok I noticed that the js file and the php was to be inserted in the getCities.php ( not sure where exactly but I assume in between the select tags of the 2nd listbox ) was not in the proper place. But when I fixed that I got this error:
    Code:
    Error: syntax error
    Source File: listboxcombo/getCities.php
    Line: 65
    Source Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    PHP Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>

    <style type="text/css">
    body{
        background-repeat:no-repeat;
        font-family: Trebuchet MS, Lucida Sans Unicode, Arial, sans-serif;
        height:100%;
        background-color: #FFF;
        margin:0px;
        padding:0px;
    }
    select{
        width:150px;
    }
    </style>
    <script type="text/javascript" src="js/ajax.js"></script>
    <script type="text/javascript">
    /************************************************************************************************************
    Ajax chained select
    Copyright (C) 2006  DTHMLGoodies.com, Alf Magne Kalleland

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

    Dhtmlgoodies.com., hereby disclaims all copyright interest in this script
    written by Alf Magne Kalleland.

    Alf Magne Kalleland, 2006
    Owner of DHTMLgoodies.com


    ************************************************************************************************************/    
    var ajax = new Array();

    function getCityList(sel)
    {
        var countryCode = sel.options[sel.selectedIndex].value;
        document.getElementById('dhtmlgoodies_city').options.length = 0;    // Empty city select box
        if(countryCode.length>0){
            var index = ajax.length;
            ajax[index] = new sack();
            
            ajax[index].requestFile = 'getCities.php?countryCode='+countryCode;    // Specifying which file to get
            ajax[index].onCompletion = function(){ createCities(index) };    // Specify function that will be executed after file has been found
            ajax[index].runAJAX();        // Execute AJAX function
        }
    }

    function createCities(index)
    {
        var obj = document.getElementById('dhtmlgoodies_city');
        eval(ajax[index].response);    // Executing the response from Ajax as Javascript code    
    }


    function getSubCategoryList(sel)
    {
        var category = sel.options[sel.selectedIndex].value;
        document.getElementById('dhtmlgoodies_subcategory').options.length = 0;    // Empty city select box
        if(category.length>0){
            var index = ajax.length;
            ajax[index] = new sack();
            
            ajax[index].requestFile = 'getSubCategories.php?category='+category;    // Specifying which file to get
            ajax[index].onCompletion = function(){ createSubCategories(index) };    // Specify function that will be executed after file has been found
            ajax[index].runAJAX();        // Execute AJAX function
        }
    }
    function createSubCategories(index)
    {
        var obj = document.getElementById('dhtmlgoodies_subcategory');
        eval(ajax[index].response);    // Executing the response from Ajax as Javascript code    
    }        
    </script>


    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Listbox Combo</title>
    </head>

    <body>

    <form action="" method="post">
    <table>
        <tr>
            <td>Country: </td>
            <td><select id="dhtmlgoodies_country" name="dhtmlgoodies_country" onchange="getCityList(this)">
                <option value="">Select a country</option>
                <option value="dk">Denmark</option>
                <option value="no">Norway</option>
                <option value="us">US</option>
            </select>
            </td>
        </tr>
        <tr>
            <td>City: </td>
            <td><select id="dhtmlgoodies_city" name="dhtmlgoodies_city">
            <?php

    if(isset($_GET['countryCode'])){
      
      switch(
    $_GET['countryCode']){
        
        case 
    "no":
          echo 
    "obj.options[obj.options.length] = new Option('Bergen','1');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Haugesund','2');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Oslo','3');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Stavanger','4');\n";
          
          break;
        case 
    "dk":
          
          echo 
    "obj.options[obj.options.length] = new Option('Aalborg','11');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Copenhagen','12');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Odense','13');\n";
          
          break;
        case 
    "us":
          
          echo 
    "obj.options[obj.options.length] = new Option('Atlanta','21');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Chicago','22');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Denver','23');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Los Angeles','24');\n";
          echo 
    "obj.options[obj.options.length] = new Option('New York','25');\n";
          echo 
    "obj.options[obj.options.length] = new Option('San Fransisco','26');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Seattle','27');\n";
          
          break;
      }  
    }

    ?>
            </select>
            </td>
        </tr>
        <tr>
            <td colspan="2"><b>Second example</b></td>
        </tr>
        <tr>
            <td>Category: </td>
            <td><select id="dhtmlgoodies_category" name="dhtmlgoodies_category" onchange="getSubCategoryList(this)">
                <option value="">Select a category</option>
                <option value="1">Cars</option>
                <option value="2">Boats</option>
                <option value="3">Airplanes</option>
            </select>
            </td>
        </tr>
        <tr>
            <td>Sub category: </td>
            <td><select id="dhtmlgoodies_subcategory" name="dhtmlgoodies_subcategory">
            
            </select>
            </td>
        </tr>
    </table>
    </form>


    </body>
    </html>
    Compare bible texts (and other tools):
    TheWheelofGod

  7. #7
    Join Date
    Jul 2004
    Posts
    494
    Oh yeah line 65 is:
    Code:
    eval(ajax[index].response);	// Executing the response from Ajax as Javascript code
    Compare bible texts (and other tools):
    TheWheelofGod

  8. #8
    Join Date
    Nov 2004
    Location
    out on a limb
    Posts
    13,692
    Provided Answers: 59
    normally I'd expect any Javascript to be loaded as part of the head block, personally I find it easier to load the script from a file, rather than include it in the PHP script, separating the two does have the advantage of simplyfying matters and not getting cross language errors

    Mind you the PHP error messages are usually fairly explicit, whereas error messages and debugging in Javascript can be a real pain.

    So what is your current error?

    BTW its highly unlikely that people will wade through reams of your scripts to debug them for you, you are more likely to get a response if you include the fragment with the error in. You are also more likely to get a response with a database related question outsides the Access forum rather than a laguae problem

    What other resources have you looked at?
    have you gone out and invested in some decent PHP, AJAX & JAVASCRIPT references / books?

  9. #9
    Join Date
    Jul 2004
    Posts
    494
    No I haven't looked for any books. As for googling the first few pages of google lead to the same script.

    But I desperately need this for my combo listbox.

    The error is pointing at line 65 , which is:
    Code:
    eval(ajax[index].response); // Executing the response from Ajax as Javascript
    found in:
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    
    <style type="text/css">
    body{
        background-repeat:no-repeat;
        font-family: Trebuchet MS, Lucida Sans Unicode, Arial, sans-serif;
        height:100%;
        background-color: #FFF;
        margin:0px;
        padding:0px;
    }
    select{
        width:150px;
    }
    </style>
    <script type="text/javascript" src="js/ajax.js"></script>
    <script type="text/javascript">
    var ajax = new Array();
    
    function getCityList(sel)
    {
        var countryCode = sel.options[sel.selectedIndex].value;
        document.getElementById('dhtmlgoodies_city').options.length = 0;    // Empty city select box
        if(countryCode.length>0){
            var index = ajax.length;
            ajax[index] = new sack();
            
            ajax[index].requestFile = 'getCities.php?countryCode='+countryCode;    // Specifying which file to get
            ajax[index].onCompletion = function(){ createCities(index) };    // Specify function that will be executed after file has been found
            ajax[index].runAJAX();        // Execute AJAX function
        }
    }
    
    function createCities(index)
    {
        var obj = document.getElementById('dhtmlgoodies_city');
        eval(ajax[index].response);    // Executing the response from Ajax as Javascript code    
    }
    
    
    function getSubCategoryList(sel)
    {
        var category = sel.options[sel.selectedIndex].value;
        document.getElementById('dhtmlgoodies_subcategory').options.length = 0;    // Empty city select box
        if(category.length>0){
            var index = ajax.length;
            ajax[index] = new sack();
            
            ajax[index].requestFile = 'getSubCategories.php?category='+category;    // Specifying which file to get
            ajax[index].onCompletion = function(){ createSubCategories(index) };    // Specify function that will be executed after file has been found
            ajax[index].runAJAX();        // Execute AJAX function
        }
    }
    function createSubCategories(index)
    {
        var obj = document.getElementById('dhtmlgoodies_subcategory');
        eval(ajax[index].response);    // Executing the response from Ajax as Javascript code    
    }        
    </script>
    
    
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Listbox Combo</title>
    </head>
    
    <body>
    
    <form action="" method="post">
    <table>
        <tr>
            <td>Country: </td>
            <td><select id="dhtmlgoodies_country" name="dhtmlgoodies_country" onchange="getCityList(this)">
                <option value="">Select a country</option>
                <option value="dk">Denmark</option>
                <option value="no">Norway</option>
                <option value="us">US</option>
            </select>
            </td>
        </tr>
        <tr>
            <td>City: </td>
            <td><select id="dhtmlgoodies_city" name="dhtmlgoodies_city">
            <?php
    
    if(isset($_GET['countryCode'])){
      
      switch($_GET['countryCode']){
        
        case "no":
          echo "obj.options[obj.options.length] = new Option('Bergen','1');\n";
          echo "obj.options[obj.options.length] = new Option('Haugesund','2');\n";
          echo "obj.options[obj.options.length] = new Option('Oslo','3');\n";
          echo "obj.options[obj.options.length] = new Option('Stavanger','4');\n";
          
          break;
        case "dk":
          
          echo "obj.options[obj.options.length] = new Option('Aalborg','11');\n";
          echo "obj.options[obj.options.length] = new Option('Copenhagen','12');\n";
          echo "obj.options[obj.options.length] = new Option('Odense','13');\n";
          
          break;
        case "us":
          
          echo "obj.options[obj.options.length] = new Option('Atlanta','21');\n";
          echo "obj.options[obj.options.length] = new Option('Chicago','22');\n";
          echo "obj.options[obj.options.length] = new Option('Denver','23');\n";
          echo "obj.options[obj.options.length] = new Option('Los Angeles','24');\n";
          echo "obj.options[obj.options.length] = new Option('New York','25');\n";
          echo "obj.options[obj.options.length] = new Option('San Fransisco','26');\n";
          echo "obj.options[obj.options.length] = new Option('Seattle','27');\n";
          
          break;
      }  
    }
    
    ?>
            </select>
            </td>
        </tr>
        <tr>
            <td colspan="2"><b>Second example</b></td>
        </tr>
        <tr>
            <td>Category: </td>
            <td><select id="dhtmlgoodies_category" name="dhtmlgoodies_category" onchange="getSubCategoryList(this)">
                <option value="">Select a category</option>
                <option value="1">Cars</option>
                <option value="2">Boats</option>
                <option value="3">Airplanes</option>
            </select>
            </td>
        </tr>
        <tr>
            <td>Sub category: </td>
            <td><select id="dhtmlgoodies_subcategory" name="dhtmlgoodies_subcategory">
            
            </select>
            </td>
        </tr>
    </table>
    </form>
    
    
    </body>
    </html>
    But the script is not even properly explained even thought the demo set up works perfectly.
    http://www.dhtmlgoodies.com/scripts/...ed-select.html

    I'm so frustrated in trying to figure it out. I've spent days on it.
    Compare bible texts (and other tools):
    TheWheelofGod

  10. #10
    Join Date
    Nov 2004
    Location
    out on a limb
    Posts
    13,692
    Provided Answers: 59
    When you outlined your original requirement I was expecting the AJAX implementation to be a request to the server to find all items for listbox2 based on the selection in list box1

    the contents of listbox2 (and arguably listbox3 is nulled or hidden) are replaced used the contents of the server response using DIV tags.

    I don't have the time to wade through lengthy lines of code, and I suspect that is going to apply to other people as well

    On the face of it this looks more like what you want, which was the first refernece on google usign "linked list box php" as the search terms

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •