Re: Notification of listbox selection change
| From: | Tedd Sperling | Date: | Thu, 09 Jan 2014 18:54:29 +0000 |
| Subject: | Re: Notification of listbox selection change | ||
| References: | 1 2 3 4 5 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-322660@lists.php.net to get a copy of this message | ||
Larry:
You are making this more complicated than it needs to be.
I simply have an index page that contains a div to hold the three selection controls
(state/cit/zip).
I use another php script (get.php) to present/populate the selection controls AND gather the data
needed.
The selection controls trigger the ajax routine like so:
<select name="state" onchange="javascript:get(this.parentNode);">
The ajax routine sends the value selected to the get.php script which in-turn repopulates the
selection controls.
Repeat and rinse.
tedd
PS: Why use framesets?
_______________
tedd sperling
tedd@sperling.com
On Jan 9, 2014, at 1:40 PM, Larry Martell <larry.martell@gmail.com> wrote:
> On Thu, Jan 9, 2014 at 11:15 AM, Tedd Sperling <tedd@sperling.com> wrote:
>> Larry:
>>
>> You don't replace the entire page -- you fill-in the portion needed.
>>
>> What you are missing here is DOM scripting.
>>
>> The Ajax portion sends a GET request to a php script (get.php) that does all the db heavy
>> work which in turn repopulates a "myspan" div, like so:
>>
>> (index.php)
>>
>> <div id="myspan"> <!-- start of myspan -->
>> <?php include("get.php"); ?>
>> </div> <!-- end of myspan -->
>>
>> The get.php script has all the database stuff including the $_GET[] that brings in the
>> state, city, and zip values.
>>
>> Based upon what is provided, get.php script pulls the data from the db and populates the
>> select controls with what is needed.
>>
>> There is no refresh of the index page, but rather just an update of the "myspan"
>> div via get.php.
>
> Tedd-
>
> I understand how your code works. My application is slightly
> different. My page looks like this:
>
> <html>
> <head>
> <title>Main </title>
> </head>
> <frameset frameborder=1 border=1 rows="140,*">
> <frame src="mainheader.php>
> <frameset frameborder=1 border=1 cols='75%,25%'>
> <frame src="main.php" name="main">
> <frame src="selection.php" name="selection">
> </frameset>
> </frameset>
> </html>
>
> From within the selection frame I call your makeRequest function with
> mainframes.php. I get back a complete new page. I got this to work by
> doing this:
>
> top.document.childNodes[0].innerHTML = response;
>
> This works on FF, Chrome, and Safari, but on IE it fails with:
>
> SCRIPT600: Could not set the innerHTML property. Invalid target
> element for this operation. Still googling for a solution for that.
>
>
>> On Jan 8, 2014, at 5:17 PM, Larry Martell <larry.martell@gmail.com> wrote:
>>
>>> On Sat, Dec 14, 2013 at 7:00 AM, Tedd Sperling <tedd@sperling.com> wrote:
>>>> On Dec 9, 2013, at 3:40 PM, Larry Martell <larry.martell@gmail.com> wrote:
>>>>
>>>>> Is there any way in php to have a function be called when the value of
>>>>> a listbox selection changes?
>>>>
>>>> Larry:
>>>>
>>>> Sure, take a look at this:
>>>>
>>>> http://php1.net/a/zipcode-states/
>>>>
>>>> Everything except the database is there -- you as you may.
>>>
>>> Tedd-
>>>
>>> Thanks very much for this. I just got around to trying it, and I
>>> adapted it for my needs and it's basically working. The one issue I
>>> have is that my request returns a complete new page and I want to
>>> replace the existing page with that. The problem is that the request
>>> originates from a frame and when I try and replace the page with the
>>> response the new page get rendered within the frame. Do you know how
>>> to replace the entire page with the response?
>>>
>>> I've tried:
>>>
>>> document.open();
>>> document.write(response);
>>> document.close();
>>>
>>> and:
>>>
>>> var newDoc = document.open("text/html", "replace");
>>> newDoc.write(response);
>>> newDoc.close();
>>>
>>> But I got the same undesirable results from both.
>>>
>>> I realized this is not really a PHP question, but I wanted to continue
>>> this thread here as others could benefit from it.
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php