提交表单后如何保留select标签的值

时间:2014-06-10 13:52:35

标签: javascript php html

我的代码是: -

<?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标签的值

2 个答案:

答案 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>