我的代码是: -
<?php
include_once 'database_connect.php';
$conn=new dbconnection();
$dbcon=$conn->connect();
if (!$dbcon)die("Fail".mysqli_error($dbcon));
?>
<html>
<head>
<title> </title>
<script type="text/javascript">
function setVal()
{
//var sel = document.getElementById("branch");
//var val = select.options[select.selectedIndex].value;
//sel.options[country.options.selectedIndex].setAttribute("selected", val);
//var select = document.getElementById("branch");
//var val = select.options[select.selectedIndex].value;//getting value
//alert(val);
//document.getElementsByName("branch")[1].selectedIndex = val;
//return val;
}
</script>
</head>
<body>
<form name="frm" method="post" action='<?php echo $_SERVER['PHP_SELF']; ?>'>
<table width="50%" border="1" cellpadding="3" cellspacing="3" align="center">
<?php
$value1=array();
$select_query="SELECT Distinct branch FROM subjects";
$result=mysqli_query($dbcon,$select_query);
if(!$result) die("Fail".mysqli_error($dbcon));
while($row=mysqli_fetch_array($result))
{
$value1[]=$row['branch'];
}
?>
<tr><td>Branch<td><select name="branch" id="branch" onchange="document.frm.submit();setVal();">
<option >Select Branch</option>
<?php
foreach($value1 as $gets)
echo "<option value={$gets}>{$gets}</option>";
?>
</select>
<?php
$value2=array();
if(isset($_POST['branch']))
{
$branch=$_POST['branch'];
function set()
{
return $branch;
}
$getsub_query="SELECT sub_code FROM subjects where branch='$branch'";
$result2=mysqli_query($dbcon,$getsub_query);
if(!$result2) die("Fail\n".mysqli_error($dbcon));
while($row1=mysqli_fetch_array($result2))
{
$value2[]=$row1['sub_code'];
}
}
?>
<tr><td>Subject Code<td><select name="subcode" id="subcode">
<option>Subject Code</option>
<?php
foreach($value2 as $gets)
echo "<option value={$gets}>{$gets}</option>";
?>
</select>
<tr><td>Submit<td><input type="submit" name="process" id="process" value="Process"></td> </tr>
</table>
</form>
</body>
</html>
<?php
mysqli_close($dbcon);
?>
我想通过选择选项
来保留提交表单后其id =分支的select标签的值答案 0 :(得分:1)
您也可以使用AJAX进行表单提交,而无需重新加载页面。
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
function submit(){
get all values in javascript variables with id's or class
/* accessing value by id */
var branch = $("#branch").val();
$.post("./",{branch: branch}, function(data){
handle response from your script
});
}
</script>
答案 1 :(得分:0)
首先,您应该努力使代码更易于阅读(维护工作),并以不同方式组织它。像这样,首先放入所有PHP,然后放入所有HTML。不要搞砸了。
其次,在form
标记中,保留action=""
就像那样,引号之间没有任何内容,这会将表单发送到同一页面。并使用双引号。
第三,在PHP中,您所要做的就是:
<?php
$branch = $_POST['branch'];
$subcode = $_POST['subcode']; // between these single quotes, put the name attribute for the select tag you want, in this case: branch and subcode.
?>
然后根据需要使用变量!
然后,如果您想在提交后重新加载时仍保留这些变量...即使$ _POST也有效,我也不知道为什么它不适合您,您可能正在寻找{ {1}}。
因此,将下一个URL设置为:
$_GET
然后使用<form action="/whatever/index.php?branch=<?php echo $branch; ?>&subcode=<?php echo $subcode; ?>">
和$_GET['branch'];
再次获取这些值。
请记住在HTML $_GET['subcode'];
代码之前使用变量,因为如果没有,那么您的操作就不会使用正确的值来使用form
进行检索。 < / p>