保存后下拉选择

时间:2012-12-01 12:04:41

标签: php html mysql

我确实有两个下拉列表称为源和广告系列,这两个下拉列表显示来自数据库的数据。我还有其他输入字段。我担心的是我想要保存这些数据在将其填入给定输入并选择下拉数据之后,必须保存它,但在保存数据后,下拉列表必须显示我在单击保存按钮时选择的选项,但它显示默认值。 我的代码如下: 这是源:

 $result= mysql_query("SELECT * FROM infosources where kunnr = '".$_SESSION["kunnr"]."' order by sort_order asc");
    $model["source"]=array();
    while($row = mysql_fetch_array($result)){
        array_push($model["source"],$row);

}

这适用于广告系列:

$result= mysql_query("SELECT * FROM s_campaigns WHERE kunnr ='".$_SESSION["kunnr"]."' and active = 'true' order by name asc");
$model["campaign"]=array();
while($row = mysql_fetch_array($result)){
    array_push($model["campaign"],$row);

}

我的下拉菜单如下:

<select name="srcid"> <?php foreach($model["source"] as &$obj){?>
                       <option  value=<?php echo $obj["srcid"];?>>    <?php echo $obj["srcname"];?> </option> 
                           <?php }?></select>

而另一个下拉是

<select name="camp_id"> <?php foreach($model["campaign"] as &$obj){?>
                       <option <?php if($model["selected"]==$obj[""]){?>selected <?php }?>  value=<?php echo $obj["id"];?>>    <?php echo $obj["name"];?> </option> 
                           <?php }?></select>

请在此建议我......

2 个答案:

答案 0 :(得分:1)

为此,您必须在刷新页面时决定视图中的值

答案 1 :(得分:0)

这是一个非常简化的示例,如果您将表单发送到同一个文件就可以了...如果您将表单发送到任何其他文件或者将$ selectedCampId变量从其他文件传递回此html表格

<?php

// fetch the database to get all possible campaings always... before form was saved and also afterwards
$result= mysql_query("SELECT * FROM s_campaigns WHERE kunnr ='".$_SESSION["kunnr"]."' 
    and active = 'true' order by name asc");

$model["campaign"]=array();
while($row = mysql_fetch_array($result)){
   array_push($model["campaign"],$row);
}

// initiate $selectedCampId .... if the form is sent ... this variable will be filled with the campaign_id so that we know which option was selected... otherwise it wil remain empty..
$selectedCampId= '';

// if the save button was pushed, the form method is POST and the camp_id is not empty
// save the value of the camp_id input field to the variable so that in the next step 
// we know which one was selected
if(!empty($_POST['camp_id'])){
    // validate the input and save the data to database
    // check which campaign id is selected and write it to variable
    $selectedCampId= $_POST['camp_id'];
}

?>
<?php // the form method is POST otherwise use $_GET to fetch the camp_id after the form was sent ?>
<form method="post">
<select name="camp_id"> 
    <?php foreach($model["campaign"] as &$obj): ?>
        <option 
           <?php // if form is sent and $selectedCampId is not empty ... echo selected = "selected" ---- otherwise echo empty string ?>
           <?php echo ($obj['id'] == $selectedCampId) ? 'selected = "selected"' : ""; ?>>
           <?php echo $obj["name"];?> 
        </option> 
    <?php endforeach;?>
</select>
</form>