【问题标题】:After selecting the value from dropdown list then it shows no any value next time从下拉列表中选择值后,下次它不会显示任何值
【发布时间】:2015-09-15 06:07:52
【问题描述】:

不工作 :- 从下拉列表中选择值后提交后,下次不会显示任何值。

工作 :- 但最后选择的值保存在会话中。如果页面被刷新,会话值显示为下拉列表中的选择。

工作:- 提交任何关键字后,下拉列表中的值必须显示。

请给我解决方案以使第一个工作正常。 我已经使用 POST 完成了

这是我的代码:-

<?php
session_start();
$selected='';
$offer_type_selected='';
function get_options($select)
{
    $incent_type=array('All'=>'none','Incent'=>'Incent','Non-Incent'=>'Non-Incent');
    $options='';
    while(list($k,$v)=each($incent_type))
    {
        if($select==$v)
        {
            $options.='<option value="'.$v.'" selected>'.$k.'</option>';   
        }
        else
        {
            $options.='<option value="'.$v.'">'.$k.'</option>';
        }        
    }
    return $options; 
}
if(isset($_POST['incent_type']))
    {
     $selected=$_POST['incent_type'];
     echo $selected;
      $_SESSION['incent_type']=$selected;
    }
?>
<body link="white">

<div class="container">
        <div class="content" >
           <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">

                <div class="label_div">Type a keyword :</div>
                <div class="input_container">
                    <input type="text" name="subquery" id="name_id" onkeyup="autocomplet()">
                    <ul id="name_list_id"></ul>                    
                </div>

                <div class="lable_div" >
                    <input type="submit" class="submit_query" name="submit_id" value="Submit Query" >
                    Select Incent Type :<select class="custom-dropdown" name="incent_type" onchange="this.form.submit();">
                        <?php 
                        $flag=0;
                        if(isset($_POST['subquery']))
                        {
                            if(strcmp("",$_POST['subquery'])!=0)
                            {
                                unset($_SESSION['incent_type']);
                                unset($_SESSION['offers_type']);
                                echo get_options('none');
                                $flag=1;
                            }                            
                        }
                        else if(isset($_SESSION['incent_type']) && $flag==0)
                             echo get_options($_SESSION['incent_type']);
                        else if($flag==0)
                            echo get_options('none');
                        ?>
                    </select>
                   </div>
            </form>
    </div>  
</div>

【问题讨论】:

  • 你需要 multiple> 和一个数组 "incent_type[]" 示例:&lt;select class="custom-dropdown" name="incent_type[]" multiple&gt;。我确定你知道如何从数组中获取值:注意$selected=$_POST['incent_type']; ... $selected 现在是一个数组。
  • 不工作。我在这里读了一百遍。 : 阅读基础知识。这里有一个答案multiple-selected-values

标签: javascript php html session post


【解决方案1】:

您在检查 $_POST['subquery'] 时遇到问题,您一直在得到 true 这个 - if(isset($_POST['subquery'])),请尝试更改为 if(!empty($_POST['subquery']))

你也可以删除会话和一些if:

<?php
function get_options($select=null)
{
    $incent_type=array('All'=>'none','Incent'=>'Incent','Non-Incent'=>'Non-Incent');
    $options='';
    foreach($incent_type as $k=>$v){
        $options.='<option value="'.$v.'" '.(!empty($select) && $select==$v?"selected":"").'>'.$k.'</option>';  
    }
    return $options; 
}
?>
<body link="white">

<div class="container">
        <div class="content" >
           <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">

                <div class="label_div">Type a keyword :</div>
                <div class="input_container">
                    <input type="text" name="subquery" id="name_id" onkeyup="autocomplet()">
                    <ul id="name_list_id"></ul>                    
                </div>

                <div class="lable_div" >
                    <input type="submit" class="submit_query" name="submit_id" value="Submit Query" >
                    Select Incent Type :<select class="custom-dropdown" name="incent_type" onchange="this.form.submit();">
                        <?php 
                        echo get_options(empty($_POST['subquery'])?$_POST['incent_type']:null);
                        ?>
                    </select>
                   </div>
            </form>
    </div>  
</div>

【讨论】:

  • 是的,它显示了最后选择的值。但是,如果我刷新页面,那么最后一个值会丢失并显示默认值。
  • 完成我添加了两行 if(isset($_SESSION['incent_type'])) echo get_options($_SESSION['incent_type']); else echo get_options(empty($_POST['subquery'])?$_POST['incent_type']:null);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-13
  • 2014-02-15
相关资源
最近更新 更多