| | |
2 questions involving scripts, select tag, and loading pages
Please support our PHP advertiser: PostgreSQL or MySQL? Compare and contrast the two most popular open source databases
![]() |
Hi,
I'm making a website for a friend who sells sports memorabilia and I'm using a LAMP setup. I am making a menu that utilizes AJAX. The menu consists of a SELECT tag, we'll call this SELECT1, where the user clicks it, it drops down a list of leagues such as MLB, NCAA, NFL, etc., which are pulled out from a league MySQL table.
After the league is selected, a SELECT2 appears, where the user selects the conference such as National League/American League, NFC/AFC, etc.
When that is chosen, a list of that conference's teams shows up below.
It works great. Except when the page is refreshed. In that case, the page is re-loaded and the league selection stays there, but it doesn't show the conference SELECT2 tag. And then even if I click on it, nothing happens unless I change the selection, because I have the script that takes care of the conference to be executed during the onchange event in SELECT1.
How do I make it so that even if the page is refreshed, it still knows the value in SELECT1? There isn't any onload event that I know of for it; I tried it.
Here is my code so far:
This file is called menu.php. I include this in the main pages, and position it on the left.
My next question is how do I (without using frames) retain the value of what's in the SELECT tags in menu.php? I tried doing
to test to see if this method would work, and it didn't. It gave me a syntax error, and treated the whole line as a filename, it said it couldn't find the file. So without putting menu.php in its own frame, how would I keep the menu intact, going from page to page? Constantly having to go through it and select your team would get very annoying to a user.
I hope I described this in sufficient detail, if not, I apologize in advance, and will do my best to do so if you need further clarification.
Thanks,
Diode
I'm making a website for a friend who sells sports memorabilia and I'm using a LAMP setup. I am making a menu that utilizes AJAX. The menu consists of a SELECT tag, we'll call this SELECT1, where the user clicks it, it drops down a list of leagues such as MLB, NCAA, NFL, etc., which are pulled out from a league MySQL table.
After the league is selected, a SELECT2 appears, where the user selects the conference such as National League/American League, NFC/AFC, etc.
When that is chosen, a list of that conference's teams shows up below.
It works great. Except when the page is refreshed. In that case, the page is re-loaded and the league selection stays there, but it doesn't show the conference SELECT2 tag. And then even if I click on it, nothing happens unless I change the selection, because I have the script that takes care of the conference to be executed during the onchange event in SELECT1.
How do I make it so that even if the page is refreshed, it still knows the value in SELECT1? There isn't any onload event that I know of for it; I tried it.
Here is my code so far:
PHP Syntax (Toggle Plain Text)
<?php include('connect.php'); include('htmlheader.php'); $menuleagueno = $_SESSION['mleagueno']; $menuteamno = $_SESSION['mteamno']; // // echo "<html><body background='bricks2.jpg'>"; echo " <table border=0 cellspacing=0 cellpadding=0> <tr> <td background='bricks6.jpg' height=700 valign=top font style: color=white> <form> <font color=white> Select a sports league:<br />"; echo "<select name='league' onload='leagues(this.value)'>"; echo " <option value=0>Select a sports league: <option value=0>--------------------------"; $sql = "select * from leagues"; $result = mysql_query($sql); while($row = mysql_fetch_array($result)) { $leagueno = $row['leagueno']; $leaguedesc = $row['leaguedesc']; echo "<option value=$leagueno>$leaguedesc"; } echo " </select></p> </font> </form> <span id='results'></span> </td> </tr> </table> "; echo "</body></html>"; // include('htmlfooter.php'); ?>
This file is called menu.php. I include this in the main pages, and position it on the left.
My next question is how do I (without using frames) retain the value of what's in the SELECT tags in menu.php? I tried doing
PHP Syntax (Toggle Plain Text)
$menuleagueno = $_GET['leagueno']; $menuteamno = $_GET['teamno']; include('menu.php?leagueno=$menuleagueno');
to test to see if this method would work, and it didn't. It gave me a syntax error, and treated the whole line as a filename, it said it couldn't find the file. So without putting menu.php in its own frame, how would I keep the menu intact, going from page to page? Constantly having to go through it and select your team would get very annoying to a user.
I hope I described this in sufficient detail, if not, I apologize in advance, and will do my best to do so if you need further clarification.
Thanks,
Diode
I'm pretty new to AJAX. I think I have found that you can't use php functions on events such as onchange. Is this correct? Do you have to use a javascript function to set the session variables in this case? If so, how do you use javascript to set php session variables? This is very confusing to me.
Thanks,
Diode
Thanks,
Diode
you are right that you can't use php functions with onchange events. this is because php is server side, meaning that its processed by the server before being sent to the browser. javascript is client side. what you need to do is get ajax(pretty much javascript) to send info to the php script where the session will be set.
I implemented the session variables, but I have found that the only events SELECT tags respond to are onfocus, onblur, and onchange.
I put the javascript function inside an onload event in the body, which did nothing. I can access the session variables, but if the page is loaded, how do I make the elements of the menu appear without the user having to re-enter all the team data?
this function works if it is placed within the onchange event in the select tag, and there is a value in $mleagueno because it is displayed on the page. Any idea what's going on here?
Thanks
I put the javascript function inside an onload event in the body, which did nothing. I can access the session variables, but if the page is loaded, how do I make the elements of the menu appear without the user having to re-enter all the team data?
PHP Syntax (Toggle Plain Text)
leagueno = $mleagueno <onload = 'leagues($mleagueno)'>
this function works if it is placed within the onchange event in the select tag, and there is a value in $mleagueno because it is displayed on the page. Any idea what's going on here?
Thanks
![]() |
Other Threads in the PHP Forum
- Previous Thread: Hook SMTP Server
- Next Thread: error in displaying results.
| Thread Tools | Search this Thread |
.htaccess alexa apache api array beginner beneath binary broadband broken cakephp checkbox class cms code convert cron curl database date display dynamic echo email encode error fcc file files folder form forms function functions google howtowriteathesis href htaccess html image images include insert ip javascript joomla key limit link login mail mail() memberships menu mlm multiple multipletables mysql mysql_real_escape_string network oop open passwords paypal pdf php provider query radio random redirect remote rss script search searchbox securephp server sessions smtp source space sql strip_tags syntax system table template tutorial update upload url user validator variable video voteup web website youtube






