I am getting error to this probably, $result = mysql_query("Select setyear, YearName from tblset, tblyear where tblyear.ID=tblset.setyear group by setyear having tblset.setcours=".$res, $connection);
I want to pass the value of select name="studcourse" class="form-control
"** which is in variable $res and put it on the $result variable under **select name="studyear" class="form-control
".
Can anybody help me?
<form method="post" action="<?php echo $_SERVER['$PHP_SELF'];?>">
<div class="form-group">
<label>Student Course</label>
<select name="studcourse" class="form-control">
<?php
$result = mysql_query("Select setcours, course_desc from tblset, tbl_coursetype where tbl_coursetype.course_no=tblset.setcours group by setcours", $connection);
if (!$result) {
die("Database query failed: " . mysql_error());
}
// 4. Use returned data
while ($row = mysql_fetch_array($result)) {
echo "<option value=\"{$row[0]}\">{$row[1]}</option>";
}
?>
<?php
$res="";
$res=$_POST["studcourse"];
?>
</select>
</div>
<div class="form-group">
<label>Student Year</label>
<select name="studyear" class="form-control">
<?php
$result = mysql_query("Select setyear, YearName from tblset, tblyear where tblyear.ID=tblset.setyear group by setyear having tblset.setcours=".$res, $connection);
if (!$result) {
die("Database query failed: " . mysql_error());
}
// 4. Use returned data
while ($row = mysql_fetch_array($result)) {
echo "<option value=\"{$row[0]}\">{$row[1]}</option>";
}
?>
</select>
</div>
You can pass one variable to another php using session variables :
<? Php
session_start();
$z=3;
$_SESSION['var_name'] =$z;? >
Second php :
<? Php
session_start() ;
$x=$_SESSION['var_name'] ;? >
You need to define <?php $res ?>
before starting html code as
<?php
$res = '';
if($_POST['studcource']){
$res = $POST['studcource'];
}
<form method="post" action="<?php echo $_SERVER['$PHP_SELF'];?>">
<div class="form-group">
<label>Student Course</label>
<select name="studcourse" class="form-control" onchange="document.form.submit();">
<?php
$result = mysql_query("Select setcours, course_desc from tblset, tbl_coursetype where tbl_coursetype.course_no=tblset.setcours group by setcours", $connection);
if (!$result) {
die("Database query failed: " . mysql_error());
}
// 4. Use returned data
while ($row = mysql_fetch_array($result)) {
echo "<option value=\"{$row[0]}\">{$row[1]}</option>";
} ?>
</select>
</div>
<div class="form-group">
<label>Student Year</label>
<select name="studyear" class="form-control">
<?php
$result = mysql_query("Select setyear, YearName from tblset, tblyear where tblyear.ID=tblset.setyear group by setyear having tblset.setcours=".$res, $connection);
if (!$result) {
die("Database query failed: " . mysql_error());
}
// 4. Use returned data
while ($row = mysql_fetch_array($result)) {
echo "<option value=\"{$row[0]}\">{$row[1]}</option>";
}
?>
</select>
</div>
Apologies in advance if this is not what you meant but I interpreted the question to mean that you wish to populate the second dropdown menu based upon the selection made in the first dropdown menu. To that end ( not tested ) the approach below implements ajax to send a POST request to the same page that is then used in the sql query. The results of the sql query are then used to generate the options for the second dropdown menu...
<?php
if( $_SERVER['REQUEST_METHOD']=='POST' && isset( $_POST['studcourse'] ) ){
/* Generate the html and send to javascript callback to insert into select menu */
@ob_clean();
$studcourse=mysql_real_escape_string( $_POST['studcourse'] );
/*
Possible alternative SQL
------------------------
select s.`setyear`, yr.`YearName`
from `tblset` s
left outer join `tblyear` yr on yr.`id`=s.`setyear`
where s.`setcours`='".$studcourse."'
order by s.`setyear`;
*/
$sql="select `setyear`, `YearName`
from `tblset`, `tblyear`
where `tblyear`.`ID`=`tblset`.`setyear`
group by `setyear`
having `tblset`.`setcours`='".$studcourse."';";
$result=mysql_query( $sql, $connection );
if( $result ){
while( $row = mysql_fetch_array( $result ) ) {
echo "<option value='{$row[0]}'>{$row[1]}";
}
} else {
echo '<option>No results';
}
exit();
}
?>
<html>
<head>
<title>Example - set select menu based upon value from previous select menu</title>
<script type='text/javascript'>
function cbstudyear(r){
document.getElementById('studyear').innerHTML=r;
}
function setstudyear( event ){
var el=typeof( event.target )!='undefined' ? event.target : event.srcElement;
var value=el.options[ el.options.selectedIndex ].value;
var req=new XMLHttpRequest();
var headers={
'Accept': "text/html, application/xml, application/json, text/javascript, "+"*"+"/"+"*"+"; charset=utf-8",
'Content-type': 'application/x-www-form-urlencoded',
'X-Requested-With': 'XMLHttpRequest'
};
req.onreadystatechange=function(){
if( req.readyState==4 ) {
if( req.status==200 ) cbstudyear.call( this, req.response );
else console.warn( 'Error: '+req.status+' status code returned' );
}
}
req.open( 'POST', document.location.href, true );
for( header in headers ) req.setRequestHeader( header, headers[ header ] );
req.send( 'studcourse=' + value );
}
</script>
</html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<div class="form-group">
<label>Student Course</label>
<select name="studcourse" id='studcourse' class="form-control" onchange='setstudyear(event)'>
<?php
$result = mysql_query("select `setcours`,`course_desc`
from `tblset`, `tbl_coursetype`
where `tbl_coursetype`.`course_no`=`tblset`.`setcours`
group by `setcours`;", $connection );
if( $result ){
while( $row = mysql_fetch_array( $result ) ) {
echo "<option value=\"{$row[0]}\">{$row[1]}";
}
} else {
echo "<option>Database query failed";
}
?>
</select>
</div>
<div class="form-group">
<label>Student Year</label>
<select name="studyear" id='studyear' class="form-control">
</select>
</div>
<!--
Other form elements here presumably ~ including submit button etc
-->
</form>
</body>
</html>