我遇到一个问题,当我在会话数组中保存变量时,它只存储第一个单词。也就是说,如果是"一号公司",它只会拯救"公司"。变量来自选择列表:
function listCompany() {
include 'includes/connection.php';
$stmt = $conn->prepare("SELECT CompanyName FROM Portal.company ORDER BY CompanyName ASC");
$stmt->execute();
$stmt->bind_result($col1);
?>
<select name="CompanyName">
<?
$blank = "";
echo "<option value=" . $blank . "> </option>";
while ($stmt->fetch()) {
echo "<option value=" . $col1 . ">" . $col1 . "</option>";
}
?>
</select>
<?
}
然后存储在会话中:
$_SESSION['NewOrder'] = $array2 = array(
"CompanyName" => $_POST['CompanyName'],
当我回显变量时,我只得到第一个单词。你知道我做错了什么吗?
您缺少值周围的引号。应该是
echo "<option value='"$blank'"> </option>";
while ($stmt->fetch()) {
echo "<option value='"$col1'">$col1</option>";
}
在您的代码中,HTML输出将是
<option value=Company one>Company one</option>
^-----^ <-- this part is taken as value the rest
after space is invalid HTML so gets ignored
应该是
<option value="Company one">Company one</option>
问题是因为这一行,
echo "<option value=" . $col1 . ">" . $col1 . "</option>";
你没有用单引号引用你的value
。应该是
echo "<option value='" . $col1 . "'>" . $col1 . "</option>";