-3

所以,我在从表单中获取数据并在我的代码中使用它时遇到了问题。这是选择选项页面:

        <form action="options.php" method="post"> 
        <label>Select number of options:</label>
        <select name="options">
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
        </select><br><br>
        <input type="submit" name="next" value="Next"><br><br>
    </form> 

这是 options.php 页面

<?php
    // put your code here
    $options = $_POST['options'];
    if (isset($_POST['submit'])) {
        echo $options;
    }
    ?>

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
        Fill in the following fields:<br><br>
        <?php
        //loop to prompt the user to enter options' details
        for ($i = 1; $i <= $options; $i++) {
            $optionName = "option$i";
            ?>
            <?php echo 'Option ' . $i; ?><input type="text" name="<?php echo $optionName; ?>"/><br><br>
            <?php
        }
        ?>
        <input type="submit" name="submit" value="Next"/>
    </form>

不知怎的,我无法让它工作。它不断给我一个错误,即“未定义的索引”。我试图用isset()修复它。我一直在这里做错事,但我不知道是什么。有人请帮助我或提出一些解决方案和方法来让它工作。我是新手,上周开始学习。

4

4 回答 4

1

将这些放在代码的开头以查看实际发布的内容(它还将显示获取值)。这些格式很好地格式化了 Get 和 Post 值。我一直在使用它们。一旦您看到实际发布的内容,您将能够看到您所期望的内容。

echo("<br><br>Get contents:"); echo("<pre>" . print_r($_GET, 1) . "</pre>");
echo("<br>Post contents:"); echo("<pre>" . print_r($_POST, 1) . "</pre>");
exit;
于 2013-04-30T23:33:15.293 回答
0

首先,您$_POST['submit']将永远不会被设置,因为没有任何内容发布到该字段。

如果您想对此进行调试,让我们首先获取发布的所有内容的输出。我们可以通过执行print_r($_POST);以下操作来做到这一点。

    <?php
        echo '<pre>';
        print_r($_POST);
        echo '</pre>'
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
        Fill in the following fields:<br><br>
        <?php
        //loop to prompt the user to enter options' details
        for ($i = 1; $i <= $options; $i++) {
            $optionName = "option$i";
            ?>
            <?php echo 'Option ' . $i; ?><input type="text" name="<?php echo $optionName; ?>"/><br><br>
            <?php
        }
        ?>
        <input type="submit" name="submit" value="Next"/>
    </form>

然后,您可以轻松查看哪些 POST 字段可供您使用,并从那里继续编码您的项目。

于 2013-04-30T23:24:56.647 回答
0

$options = $_POST['options'];应该是$options = (isset($_POST['options']) ? $_POST['options'] : "");

于 2013-04-30T23:22:39.837 回答
0

你有

<input type="submit" name="next" value="Next"><br><br>

稍后你检查

if (isset($_POST['submit'])) {

您输入的名称是您在查找值时要使用的键。

if (isset($_POST['next'])) {
于 2013-04-30T23:24:04.940 回答