下拉列表中的值不会传递到$ _POST中的php脚本

问题描述 投票:0回答:1

我创建了一个带有从mysql数据库填充的下拉列表的表单。使用所有名称正确填充下拉列表,并且在提交表单时,$ _POST显示数组中有名称的变量,但没有值,表单的所有其他元素都正确提交。这是我对表单的代码

    <form action ="returns.php" method="post">

    Name:<br><?php

        $sql= "SELECT Fund_name FROM fundnames";
        $fnames=$connect->query($sql);

        echo "<select name='fund'>";
        while ($row = $fnames->fetch_array())   {
            echo '<option value="' . $row['Fund_Name'] . '">' . $row['Fund_name'] . '</option>';

        }
        echo "</select>";

    ?></select>

    <br>Date:<br><input type="text" name="date" id="date"><br>

    Return: <br><input type = "text" name = "return">

    <input type="submit" value="Submit">
</form>

我用目标脚本测试输出

<?php 

print_r($_POST);?>

出现的结果是

Array ( [fund] => [date] => 09/07/2018 [return] => 4 )

我该如何解决?

php html
1个回答
1
投票

这值得一试:

更换

echo '<option value="' . $row['Fund_Name'] . '">' . $row['Fund_name'] . '</option>';

echo '<option value="' . htmlspecialchars($row['Fund_name']) . '">' . htmlspecialchars($row['Fund_name']) . '</option>';

这将至少确保<option>标签具有有效的html。但标准化Fund_name的情况可能会解决你的问题。

请注意,您的原始代码使用$row['Fund_Name']作为值,使用$row['Fund_name']作为标签。我的猜测是只设置了其中一个,所以值总是为null(这可能会产生警告,但也许你会被抑制)

© www.soinside.com 2019 - 2024. All rights reserved.