$ _POST [string]包含空格

时间:2014-05-02 15:02:28

标签: php html mysql string select

在我的网页上,我希望能够从下拉菜单中选择一个选项。为此,我从MySQL表中选择数据:

$quantity_query = "SELECT * FROM input_quantity"; 
$quantity_result = mysqli_query($connection, $quantity_query); 
while ($row = mysqli_fetch_array($quantity_result)) {
    $option_quantity .= "<option value = $quantity_name> $quantity_name </option>";
}

然后我创建了这样的实际下拉列表:

<select id = "new_quantity" name = "new_quantity" style = "width: 100%">
    <?php echo $option_quantity; ?>
</select>

然后我想将$_POST['new_quantity']打印到屏幕上,效果很好。但是,我使用的某些数据包含空格,例如100 ml。在这种情况下,仅打印100

我也试过这个

$option_quantity .= "<option value = '".$row['quantity']."'>".$row['quantity']."</option>";

但这没什么区别。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

更新此内容:

while ($row = mysqli_fetch_array($quantity_result)) {
    $option_quantity .= "<option value = $quantity_name> $quantity_name </option>";
}

为:

while ($row = mysqli_fetch_array($quantity_result)) {
    $option_quantity .= "<option value='$quantity_name'> $quantity_name </option>";
}

说明:当您将值设置为您的选项时,如果您没有引号(单/双),则会在第一个空格实例处修剪该值。


示例: test.php

<?php

// Handle Post
if (count($_POST))
{
    var_dump($_POST);
}

// Dummy Options
$option_quantity = '';
for ($i = 1; $i < 5; $i++) {
    $option_quantity .= "<option value='value$i'>Value $i</option>";
}

?>
<form action="test.php" method="post">
<select name="mySelect">
    <?php echo $option_quantity; ?>
</select>
<input type="submit" value="Submit">
</form>

示例输出:

enter image description here

答案 1 :(得分:0)

您没有在循环中创建有效的HTML,我更喜欢HTML属性中正确的" vs '

$option_quantity = null;
while ($row = mysqli_fetch_array($quantity_result)) {
    $option_quantity .= '<option value="'.$quantity_name.'"> '.$quantity_name.' </option>';
}

也不要忘记在连接之前创建$option_quantity,否则如果您有错误报告,则会收到未定义的警告。

答案 2 :(得分:-3)

如果要删除所有空格:

$str = str_replace(' ', '', $row['quantity']);

然后使用变量在需要的地方回显。

编辑:

基本上它应该看起来像这样的东西

$str = str_replace(' ', '', $row['quantity']); echo '<select id = "new_quantity" name = "new_quantity" style = "width: 100%">'; echo '<option value="' . $str . '">' . $str . '</option></select>';