一旦我在编辑表单中添加会话,我就无法在下拉列表中获得选定的值


Once I add session in edit form, I could not get selected values in dropdown

在编辑表单中添加会话后,我无法在下拉菜单中获取选定的值。我正在使用引导程序框架。当我从同一开始删除会话时,它就起作用了。

edit.php文件

<?php
  session_start();
  $car=$_POST['car']
?> 
<form method="post" action="">
<div class=from-group>
  <label for="exampleInputEmail1>Car</label>
    <select class="form-group" name="car" id="car" value="<?php echo $car; selected?>">
      <option value=<?php echo $car?> selected>
         <?php cars()?>
      </option>
</div>
</form>

我创建了"cars"函数,在该函数中,我可以从数据库中获取所有汽车的值。

function cars(){
   $link = new mysqli("", "", "", "");
   $link = set_charset("utf8);
   $sql = mysqli_query($link, "SELECT * FROM db_cars ORDER BY CarId")
   echo '<option value=""> Choose car </option>'
   while ($record = mysqli_fetch_array($sql)) {
       echo '<option value = "'.$record['CarId']'"> . $record['CarName'].' </option>
   }
}

如有任何帮助或建议,我们将不胜感激。

select元素没有name属性,因此它不可能是一个成功的控件(即提交任何数据)。

表单没有提交按钮,因此没有明显的方法可以触发表单提交。(您必须在一个新的HTTP请求中向服务器提交表单,以运行PHP并从用户那里获取数据)。

首先,在使用PHP时,在每行后面添加分号。这会带来很多麻烦。

其次,有些属性只有一个("),比如HTML.中的标签

第三,您在回显$car之后添加了一个名为selected的"某物"。

在函数cars()中,您在执行while()循环之后,不使用分号(;)进行回显。

看看所有,你错过了非常重要和重要的东西

此外,我猜这不是你代码中的"复制粘贴",但如果是,你也会丢失</select>