我在提交表单后使用POST方法时遇到问题。提交表单后它没有传递完整的字符串,但它在"选择"";选项";html。
在数据库中,我有一个名为";管理员";其中一列称为";id";另一个被称为";管理员":id:1管理员:";Alejandro Salgado";
这是php代码:
function listAdministradores(){
global $conn;
$result = $conn->query("SELECT * FROM administradores");
while($row = $result->fetch_assoc()){
echo '<option value='.$row["administrador"].'>'.$row["administrador"].'</option>';
}
}
这是html代码:
<form action="./includes/crearpropuesta.inc.php" method="post">
<label for="administrador" class="form-label pt-3">Administrador:</label>
<select name="administrador" id="administrador" class="form-select">
<?php listAdministradores() ?>
</select>
它显示了";Alejandro Salgado";正确:
html结果
但是当我提交表单和var_dump($_POST["administrador"](时,它只返回名字";Alejandro":
string(9) "Alejandro"
发生了什么事?
要包含用空格分隔的字符,您需要用引号(在您的情况下是双引号(将数据括起来
因此,请更改
echo '<option value='.$row["administrador"].'>'.$row["administrador"].'</option>';
至
echo '<option value="'.$row["administrador"].'">'.$row["administrador"].'</option>';