【问题标题】:holding value in dropdown after submitting or refreshing提交或刷新后在下拉列表中保持值
【发布时间】:2021-06-06 11:59:01
【问题描述】:
<?php
  $sql=mysqli_query($mysqli,"select * from calls where eid='$aid'")or die(mysqli_error($mysqli));
  while($row2=mysqli_fetch_assoc($sql))
  {
    ?><select name='city'>
        <option value="">Select City</option>
    <?php   
    $c=explode(',', $row2['city']);
    foreach ($c as $c1) 
    {
     ?>
     <option value='$c1'  <?php if(isset($_POST['search']) || isset($_POST['next'])|| isset($_POST['submit']))
        {
         if(($c==$c1))
          { echo 'Selected';} 
        }?>><?php echo $c1;?></option>"

  <?php }
    echo"</select>";
  }
    ?>

calls 表 city 存储为逗号分隔的数组。我已成功将其放入下拉框中。现在我希望每当我提交或刷新页面时,它都会保留选定的下拉值。

【问题讨论】:

标签: php mysqli dropdown explode


【解决方案1】:

你应该检查isset($_POST["city"]) &amp;&amp; $_POST["city"] == $city

foreach ($cities as $city) 
{
  $selection = (isset($_POST["city"]) &&  $_POST["city"] == $city  ? 'selected':''  );
  echo ' <option value="'.$city.'" '.$selection.' >'.$city.'</option>';
 
}

   
 

【讨论】:

    【解决方案2】:

    您只需将$c1 的值与表单提交返回的先前值进行比较,并检查此执行是表单提交的结果。

    <?php
    
    $sql = "select * from calls where eid=?";
    $stmt = $mysqli->prepare($sql);
    $stmt->bind_param('s', $aid)
    $stmt->execute();
    $result = $stmt->get_result();
    
    while($row2 = $result->fetch_assoc()) {
    ?>
    <select name='city'>
        <option value="">Select City</option>
    <?php   
        $c=explode(',', $row2['city']);
        foreach ($c as $c1) {
            $sel = '';   // init value 
            if ( $_SERVER['REQUEST_METHOD'] == 'POST' && $c1 == $_POST['city'] ) {
                $sel = "selected='selected'";
            }
    
            echo "<option $sel value='$c1' >$c1</option>";
        }
        echo "</select>";
    }
    ?>
    

    【讨论】:

    • 看来你在混合mysqli和PDO
    • @IndraKumarS 谢谢,实际上比那更糟,我把一切都搞糊涂了 :)
    • 准备好的stmt中没有fetch_assoc()这样的方法。
    猜你喜欢
    • 2017-10-15
    • 2012-07-03
    • 1970-01-01
    • 2023-03-11
    • 2016-09-24
    • 1970-01-01
    • 2016-09-24
    • 2015-06-21
    • 1970-01-01
    相关资源
    最近更新 更多