Php isset($#U POST[';标记名';])已设置,但$#U POST[';标记名';]在选择动态列表时返回空
我已经用php创建了动态列表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']."'&
<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>