当我尝试列出数据库中的所有员工姓名以在下拉框中为特定人员分配作业时。输出值仅显示Employee的初始名称或名字。员工的其他姓名(姓氏)不会在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” 我正在为“塞尔瓦库马尔”解决问题是“塞尔瓦”
请指教。这些编码有什么问题?否则php总是忽略复选框值中文本后面的空格。
答案 0 :(得分:0)
您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);