Javascript 在HTML表单上保留从数据库接收的数据 分支机构 选择分支 主题代码 主题代码
此代码从数据库中获取第一个下拉列表分支。当我们从中选择值时,第二个下拉列表将从数据库中填充。但问题是,当我在第一个下拉列表中选择选项时,所选选项不会保留在第一个下拉列表中。但第二个下拉列表填写正确。我希望我选择的选项应保持选中状态。就像它的状态应该改变一样。我认为第一个下拉列表在表单加载时会再次被填充。您必须在html中提到该选项确实已被选中 试着替换Javascript 在HTML表单上保留从数据库接收的数据 分支机构 选择分支 主题代码 主题代码,javascript,php,html,Javascript,Php,Html,此代码从数据库中获取第一个下拉列表分支。当我们从中选择值时,第二个下拉列表将从数据库中填充。但问题是,当我在第一个下拉列表中选择选项时,所选选项不会保留在第一个下拉列表中。但第二个下拉列表填写正确。我希望我选择的选项应保持选中状态。就像它的状态应该改变一样。我认为第一个下拉列表在表单加载时会再次被填充。您必须在html中提到该选项确实已被选中 试着替换 <?php include_once 'database_connect.php'; $conn = new dbconnection()
<?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"></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();">
<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'];
$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>
echo“{$get}”;
借
$selected='';
如果(isset($\u POST['branch']&&$get==$\u POST['branch'])){
$selected='selected=“selected”';
}
回显“{$gets}”;
另一方面,您不应该将sql请求写为“从分支=“$branch”的主题中选择sub_代码”;这存在一个巨大的安全问题。如果$branch=“”;从“=”的主题中删除,则可能会删除您的表。查找“sql注入”关于进一步的信息,危险:你很容易受到你自己需要的攻击。我添加了一个测试,测试$_POST['branch']的存在性;你可能会发现,因为你接受了答案。
echo "<option value={$gets}>{$gets}</option>";
$selected = '';
if (isset($_POST['branch'] && $gets==$_POST['branch']) {
$selected = ' selected="selected"';
}
echo "<option value={$gets}".$selected.">{$gets}</option>";