Php isset($#U POST[';标记名';])已设置,但$#U POST[';标记名';]在选择动态列表时返回空

Php isset($#U POST[';标记名';])已设置,但$#U POST[';标记名';]在选择动态列表时返回空,php,Php,我已经用php创建了动态列表 <select name="student" > <option selected disable class="hideoption">Student Name</option> <?php while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)){ echo<option value='".$row['path']."'&

我已经用php创建了动态列表

<select name="student" >
    <option selected disable class="hideoption">Student Name</option>
   <?php
     while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)){
        echo<option value='".$row['path']."'>'".$row['studentName']."'</option>";
     }
  ?>   
</select>
我还尝试检查
isset
是否已设置或为空。设置了
isset
,但其为空。 这是谷歌提供的唯一解决方案。有什么想法

编辑

我已经解决了这个问题。答案的解释如下。

使用以下代码:

<select name="student" id="student" >
    <option selected disable class="hideoption">Student Name</option>
   <?php
     while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)){
        echo "<option name='".$row['studentName']."' value='".$row['path']."'>'".$row['studentName']."'</option>";
   }?>   
</select>

学名

您应该使用此行
isset($\u POST['studentName'])&&&$selected=$\u POST['studentName']==$row['studentName']?'selected=“selected”':空用于选定的
选项

<select name="student" >
   <option selected disable class="hideoption">Student Name</option>
   <?php
   while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)){
        $selected = isset($_POST['studentName']) && $_POST['studentName'] == $row['studentName'] ? 'selected = "selected"' :  null;
        echo "<option ".$selected." value='".$row['path']."'>".$row['studentName']."</option>";
   }
   ?>   
</select>

学名

@dongcheng这是相同的代码,但具有更好的对齐方式。因此,您可以清楚地看到您的代码

<select name="student">
    <option selected disable class="hideoption">Student Name</option>
   <?php
     while($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
        echo '<option value="' . $row['path'] . '">' . $row['studentName'] . '</option>';
     }
   ?>   
</select>

起初我以为
$\u POST['student']
返回了
标记中的文本,我错了。我了解到它返回了应该在
属性中设置的值,所以我只是将该值设置为
$row['studentName']
,因为
$row['path']
返回了空字符串。如果我说的不对,请纠正我。基本上,代码如下所示

<select name="student" >
  <option selected disable class="hideoption">Student Name</option>
  <?php
     while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)){
        echo<option value='".$row['studentName']."'>'".$row['studentName']."'</option>";
     }
 ?>   
</select>

学名

不确定,但你应该在这里留一个空白:“这是在这个论坛复制时的错误。”。已编辑。此代码生成错误,并且永远不会显示您的列表。您需要发布您正在使用的真实代码。它显示了我的列表,先生。问题是我试图获取所选的值。当我尝试使用“每个人”解决方案时,我得到了反对票。作为一个十足的新手,我真是太遗憾了。我花了10个多小时才决定在这里发帖。真是一个笑话。你得到了否决票,因为你没有发布你正在使用的代码,所以除了语法错误之外,没有人知道确切的问题是什么,你显然没有自己的错误。这是您的php在复制和粘贴它时所做的:而且您的echo语句不正确。请像我所做的那样更改它。在选项标记中添加
name='“$row['studentName']”“
属性@东城区谢谢先生。但是selectedStudent已返回一个空。需要检查的内容您需要检查的内容=================*表单的操作和方法属性*在通过浏览器中的开发人员工具(firefox devtools中的“网络”选项卡)提交表单时检查值。如果可以,请添加表单文件的页面源(html)。使用此选项,您可以验证您是否确实发送了相关数据。如果您不澄清您的问题,则无法解决此问题。请澄清你的实际情况
$selectedStudent = !empty($_POST['student']) ? $_POST['student'] : '';
if ($selectedStudent) {
  // your code
}
<select name="student" >
  <option selected disable class="hideoption">Student Name</option>
  <?php
     while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)){
        echo<option value='".$row['studentName']."'>'".$row['studentName']."'</option>";
     }
 ?>   
</select>