【问题标题】:Form Inputs and PHP表单输入和 PHP
【发布时间】:2021-11-17 04:18:54
【问题描述】:

在我的编码方面需要一点帮助。我正在开发一个项目,它将接受 5 个不同的数字并将它们插入到 PHP 数组中。我尝试过的代码写在下面。他们都会使我的数组中的所有 5 个内容都成为相同的数字,感谢您的帮助吗?还没有在 PHP 中处理过数组。

<form action="activity_1.php" method="post">
    <input type="text" name="number">
    <input type="submit" value="Submit" name="submit">
</form>

到目前为止,这些是我尝试过的:

$no = array();

for($i=1; $i<=5; $i++){
    array_push($no, $_POST['number']);
}

还有

$no = array();

for($i=1; $i<=5; $i++){
    //$no[$i]= $_POST['number'];
}

【问题讨论】:

  • 所以你想要一个包含 5 个数字输入的表单?
  • 您在文本框中输入了哪些不同的数字?
  • 您的表单中只有一个数字输入,因此您只发送一个数字,而不是五个。在循环中,您每次迭代都会获得相同(且唯一)的发送编号。因此,您需要在表单中输入更多数字,或者您需要多次发送表单。请多学习一点;)
  • 似乎问题与 JS 无关?
  • "它将接受 5 个不同的数字" - 您的表单只能输入一个数字?

标签: php arrays


【解决方案1】:

您可以使用一个会话变量来存储发布的数据。

所以稍微修改你的代码如下:

<?php session_start(); ?>

<form action="#" method="post">

        <input type="text" name="number">
        <input type="submit" value="Submit" name="submit">
</form>



<?php
    if ( !isset($_SESSION["no"]) ) {
    $_SESSION["no"]=array();
    }

if (isset($_POST["number"])){
array_push($_SESSION["no"], $_POST['number']);
}



for($i=0; $i<5; $i++){
    if (isset($_SESSION["no"][$i])) {
       if ($_SESSION["no"][$i]!="") {
         echo " Number you entered was: " .$_SESSION["no"][$i] . "<br>";
        }
    }
}


?>

在我看来,代码可以进一步修改,以便

a) 你应该有一个按钮来“清除”所有之前输入的数字;

b) 不知道有没有必要,不过你不妨加个功能,检查新输入的号码是否与过去输入的号码之一相同,如果相同则不要放入数组中。

【讨论】:

  • 嘿!现在试试这个。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-07
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
  • 2015-05-01
相关资源
最近更新 更多