Did IT!!!! Haha ... just as you were probably writing in & sending this mail. I pretty much used your theory and actually did look around under http://www.w3schools.com/ajax/ to get the relevant AJAX information. Works like a charm.

Pretty much using an onChange=grabCountiesfromAnotherPHPpage(); function. Code is similar to your example below - slightly different. An included 'ajax.js' takes care of the AJAX code, and an additional 'counties.php' writes counties based on a "SELECT COUNTY from myTable WHERE STATE = $_GET['STATE']" SQL Query in an independent SELECT LIST. AJAX takes care of the rest by pulling in this SELECT LIST on to the original page.

Thanks a ton - this actually turned out to be easier then I thought!!

:)

On Jul 31, 2008, at 2:31 PM, Boyd, Todd M. wrote:

Rahul,

Aww, come now... don't be so negative! :) Most widely-adopted
programming practices are widely-adopted for a reason: they are not
inherently difficult to use. This does, of course, get obfuscated by
various extensions and poor programming techniques end-users employ, but
I digress.

http://www.w3schools.com/ajax/ should get you started, but here's a
simple implementation:

selection.html:
---
<div id="stateDiv">
        <select id="stateList" name="state" onchange="ajaxCounties();">
                <option value="Alabama">Alabama</option>
                <option value="Alaska">Alaska</option>
                <!--
                        You get the idea...
                -->
        </select>
</div> <!-- /stateDiv -->
<div id="countyDiv">
        <select name="county">
                <option value=""></option>
        </select>
</div> <!-- /countyDiv -->
<script type="text/javascript">

function ajaxCounties()
{
        var xmlHttp;
        var stateList = document.getElementById("stateList");

        try {
          // Firefox, Opera 8.0+, Safari
          xmlHttp = new XMLHttpRequest();
        } catch (e) {
                // Internet Explorer
                try {
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        // Older IE
                        try {
                                xmlHttp = new
ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e) {
                                // AJAX unsupported
                                alert("Your browser does not support
AJAX!");
                                return false;
                        }
                }
        }
        
        // ajax actions
        xmlHttp.onReadyStateChange = function()
        {
                // data returned from server
                if(xmlHttp.readyState == 4) {
                        // fill div with server-generated <select>
element
                        document.getElementById("countyDiv").innerHTML =
                                xmlHttp.responseText;
                }               
        }
        
        // request counties from web server
        xmlHttp.open("GET", "county.php?state=" +
                stateList.options[stateList.selectedIndex].value, true);
        xmlHttp.send(null);
}

</script>
---

I'll leave the PHP implementation up to you... but it'll look something
like this:

county.php
---
<select id="countyList" name="county">
<?php
        // perform query here.
        
        for(a = 0; a < mysql_num_rows($result); a++) {
                $row = mysql_fetch_array($result);
                echo "<option
value=\"{$row['countyId']}\">{$row['countyName']}"
                        . "</option>";
        }
?>
</select>
---

HTH,


Todd Boyd
Web Programmer

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


---
Rahul Sitaram Johari
Founder, Internet Architects Group, Inc.

[Email] [EMAIL PROTECTED]
[Web]   http://www.rahulsjohari.com





--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to