当我尝试列出数据库中的所有员工姓名以在下拉框中为特定人员分配工作时。输出值仅显示员工的首字母或名字。员工的其他姓名(姓氏)未发布在 php 中。
实际上第一个空格后面的名称丢失了。
这是我的代码...
<pre>
<tr>
<td><label>Assigning To</label></td><td><label>:</label></td>
<td>
<?php
$result = mysqli_query($conn, "SELECT * FROM userdetails WHERE UserGroup='DigitizationArtist' || UserGroup='DigitizationArtistQC' || UserGroup='GraphicArtist' || UserGroup='GraphicArtistQC')");
echo "<select name='ArtistName' value=''>";
echo "<option value=''></option>";
while($r = mysqli_fetch_array($result))
{
echo "<option value=" .$r['Name'] .">".$r['Name']. "</option>";
}
echo "</select>";
?>
</td>
</tr>
<pre>
这是获取值的 php 代码...
$ArtistName = mysqli_real_escape_string($conn, $_POST['ArtistName']);
我要出局了,因为“S Gowri Shankar”是“S” 我要出局了,因为“Selva Kumar”是“Selva”
请指教。这些编码有什么问题?否则,php 总是忽略复选框值中文本后面的空格。
最佳答案
您的 value
属性缺少结束引号:
echo "<option value=" .$r['Name'] .">".$r['Name']. "</option>";
应该是:
echo "<option value='" .$r['Name'] ."'>".$r['Name']. "</option>";
^ ^
并且还对那些带引号的值使用 htmlspecialchars
,这样它们就不会弄乱属性的结束:
$ArtistName = mysqli_real_escape_string($conn, $_POST['ArtistName']);
$ArtistName = htmlspecialchars($ArtistName, ENT_QUOTES);
关于php - php中的下拉框从mysqli数据库获取部分值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25637308/