1
<form action = "numbericalInput.php" method = "Get">

Please enter the number of input areas you wish 
<input type = "text" name = "amountOfEntry"/>
<input type = "submit" name = "GO"/>

</form>

<?php

if(!empty($_GET("amountOFEntry")){
    for($i = 0; $i < $_GET("amountOFEntry"); $i++){
        <input type= "text" name = "nums[]" size = "2" />
    }
}

?>

我想要做的是要求用户在文本区域中输入一个值,然后让我向他们展示适当数量的文本输入,让他们输入他们的值。所以用户输入 10,他们有呈现 10 个文本输入和一个提交按钮或其他东西。我很感激这条线在它所在的地方不起作用

<input type= "text" name = "nums[]" size = "2" />

但我确信这是正确的路线?另外,这条线有什么问题?

if(!empty($_GET("amountOFEntry")){

谢谢

4

5 回答 5

3

使用:isset() http://php.net/manual/en/function.isset.php

<form action = "numbericalInput.php" method = "Get">

Please enter the number of input areas you wish 
<input type = "text" name = "amountOfEntry"/>
<input type = "submit" name = "GO"/>

</form>

<?php

if(isset($_GET['amountOfEntry'])){
    for($i = 0; $i < $_GET['amountOfEntry']; ++$i){
        ?><input type= "text" name = "nums[]" size = "2" /><?
    }
}

?>

这将检查是否存在 $_GET['amountOFEntry'] (注意方括号,因为 $_GET 和 $_POST 是数组)

另请注意使用 ++$i 而不是 $i++。这里有一个小的性能提升。不多,但值得做。

编辑::: 请注意变量区分大小写,您在表单中使用 amountOfEntry,在循环中使用 $_GET['amountOFEntry']。(注意国会大厦 F)

于 2009-10-21T09:12:09.460 回答
2

$_GET 是一个数组,你必须使用 [] 来获取元素。所以:

if(!empty($_GET['amountOFEntry']){
于 2009-10-21T09:14:55.387 回答
1

正如所指出的, $_GET 返回一个值数组。所以使用方括号来找到你想要的变量。你也不能混合 HTML 和 PHP。因此,您需要使 HTML 成为字符串(通过引用它)和用户回显(或打印)以输出字符串。

if(!empty($_GET["amountOFEntry"]){
    for ($i = 0; $i < $_GET["amountOFEntry"]; $i++) {
        echo '<input type= "text" name = "nums[]" size = "2" />';
    }
}

此外,正如 Lizard 所指出的,您应该使用 isset 来确定是否设置了变量。

于 2009-10-21T09:21:18.337 回答
1

如果您愿意,可以使用 JavaScript。使用像 JQuery 这样的库会有很大帮助。

JavaScript:

$("#goButton").bind("click",function(e){
        numberOfEntries = parseInt($("#numberOfEntries").attr("value"));
        for(i=0;i<numberOfEntries;i++){
            newInput = document.createElement("input");
            $(newInput).attr("type","text").attr("name","nums[]").attr("size","2");
            $("#inputEntries").append(newInput);
        }
    }
);

HTML:

<body>
<input id="numberOfEntries" type = "text" name = "amountOfEntry"/>
<input id="goButton" type = "submit" name = "GO"/>
<div id="inputEntries"></div>
</body>

这是很多工作,只是为了避免将页面发送回服务器并在服务器端执行工作,但我想我还是建议这样做......

于 2009-10-21T09:45:02.187 回答
1

您不妨获取 $_GET 的数值以避免运行时错误:

intval($_GET['amountOFEntry'])
于 2009-10-21T09:33:35.283 回答