【问题标题】:The selected option must shown after the function of onchange选择的选项必须在onchange函数之后显示
【发布时间】:2016-01-15 13:03:48
【问题描述】:

我有2个下拉菜单,就像标题一样。选择的选项必须在onchange功能之后显示,意思是当它自动刷新时选择的选项必须保持并显示选择的选项。问题是当我从第二个下拉菜单中选择一个具有 onchange 功能的选项时,它会刷新并返回默认选项。

这是代码

<div id="page-wrapper">
	<div class="container-fluid">
		<div class="row">
			<div class="col-lg-12">
				<div class="col-lg-10">
					<h1 class="page-header">
						BRANCHES
					</h1>
				</div>
				<div class="col-lg-2">
					<a class="btn btn-default bad-marg" href="index.php?act=abr" role="button">Add Branch</a>
				</div>
			</div>
		</div>
		<div class="row">
			<div class="col-lg-12">
			<div id="form">
							<form action="func_vbrs.php" method="POST" class="form-horizontal">
								<fieldset>
				<div class="row">
				<div class="col-lg-4">
					<div class="form-group">
						<label for="bl" class="control-label col-xs-3"><p class="left">Branch</p></label>
						<div class="col-xs-8">
							<div class="req">
							<select name="bid" class='form-control'>
								<option value='' default style='color:gray;'>Branch</option>
									<?php
										include_once "config.php";

										$sql="select branchID, b, bl from branch where b!='HOK'";
										$stmt=$con->prepare($sql);
										$stmt->execute();
										$stmt->bind_result($bid, $b, $bl);
										$stmt->store_result();
										
										while($stmt->fetch()){
											echo '<option value="'.$bid.'">'.$b.'-'.$bl.'</option>';
										}	
									?>
							</select>
							</div>
						</div>
						<div class="col-xs-1">
						</div>
					</div>
				</div>
				<div class="col-lg-4">
					<div class="form-group">
						<label for="cat" class="control-label col-xs-3"><p class="left">Category</p></label>
						<div class="col-xs-8">
							<div class="req">
								<select name="brcat" class="form-control"  onchange='this.form.submit()'>
									<option value="" default style="color:gray;">Category</option>
									<option value="Stock">Stock</option>
									<option value="Sales">Sales</option>
									<option value="Stock Transfer">Stock Transfer</option>
								</select>
							</div>
						</div>
						<div class="col-xs-1">
						</div>
					</div>
				</div>
				<div class="col-lg-4">
				</div>
				</div>
				<noscript><input type="submit" value="Submit"></noscript>
				</fieldset>
				</form>
				</div>
			</div>
		</div>
	</div>
</div> 

如您所见,第二个下拉列表是类别,如果用户在自动刷新或 onchange 功能后已经选择了一个选项,它将恢复为默认选项。

【问题讨论】:

    标签: javascript php jquery html


    【解决方案1】:

    您需要在页面加载时对帖子进行交叉检查,并适当添加selected 标签。如果您使用循环来创建选项,则可以使用更简洁的代码来更优雅的解决方案,但这是另一个问题。

    <?PHP
        if (!empty($_POST['brcat'])){
            $selected_item = $_POST['brcat'];
        } else { $selected_item = Null; }
    
        function selcheck($item1, $item2){
            if ($item1 == $item2){
                $ret = " selected=\"selected\" ";
            } else {
                $ret = "";
            }
            return($ret);
        }
    
    ?>
    
    <select name="brcat" class="form-control"  onchange='this.form.submit()'>
        <option value="" default style="color:gray;">Category</option>
    
    <?PHP
    $sel = selcheck("Stock",$selected_item);
    ?>
    <option value="Stock"<?=$sel?>>Stock</option>
    
    <?PHP
    $sel = selcheck("Sales",$selected_item);
    ?>
    <option value="Sales"<?=$sel?>>Sales</option>
    
    <?PHP
    $sel = selcheck("Stock Transfer",$selected_item);
    ?>
    <option value="Stock Transfer"<?=$sel?>>Stock Transfer</option>
    

    【讨论】:

      猜你喜欢
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 2020-07-19
      • 2014-06-20
      • 2016-10-07
      相关资源
      最近更新 更多