【问题标题】:Submit Button only saves one input box提交按钮只保存一个输入框
【发布时间】:2021-05-20 20:56:01
【问题描述】:

我正在尝试从输入框中收集数据,但提交按钮仅适用于一个文本框。有没有简单的方法来解决这个问题?代码:

<?php
              
if(isset($_POST['textdata']))
{
$data=$_POST['textdata'];
$fp = fopen('data.txt', 'a');
fwrite($fp, $data);
fclose($fp);
}
?>

<!DOCTYPE html>
<html>
<head>
  <link rel="shortcut icon" href="/favicon.ico" />
  <title>Yeet!</title>
  <style>
    html {
        background-color: #181818;
    }
    body {
        color: lightgray;
        text-align: center;
        font-family: monospace;
    }
  </style>
</head>
<body>
  <form method="post">
    <br>
    <input type="text" name="textdata"><br>
    <br>
    <input type="text" name="textdata"><br>
    <br>
    <input type="text" name="textdata"><br>
    <br>
    <input type="text" name="textdata"><br>
    <br>
    <input type="text" name="textdata"><br>
    <input type="submit" name="submit">
  </form>
</body>
</html>

我只是不希望我的所有文本框都有提交按钮。提前致谢!

【问题讨论】:

    标签: php html forms button submit


    【解决方案1】:

    您的输入都具有相同的名称,这就是浏览器有效地只传输其中一个的原因。

    <input type="text" name="textdata">
    <input type="text" name="textdata">
    

    给它们起不同的名字并在 PHP 端以这种方式访问​​它们:

    <input type="text" name="firstline">
    <input type="text" name="secondline">
    

    在 PHP 中:

    $_POST['firstline']; // will contain the data of the first input-element
    $_POST['secondline']; // will contain the data of the secondinput-element
    // and so on...
    

    如果您需要不定数量的输入字段,您也可以使用数组:

    <input type="text" name="mytextdata[]">
    <input type="text" name="mytextdata[]">
    

    在 PHP 中:

    $_POST['mytextdata']; // will contain the data of ALL the input fields as an array
    

    您可以(例如)像这样将它们合并在一起:

    $dataOfAllInputs = implode(PHP_EOL, $_POST['mytextdata']);
    

    但是,对于这种情况,使用textarea HTML element 可能更合理。

    【讨论】:

    • 我尝试了这两个答案,但它们都不起作用。我仍然标记为答案,因为它们对我来说似乎都是正确的。任何你可以投票的机会:) 我正在努力获得足够的代表,以便我可以对其他人的帖子特权发表评论。
    • 他们都应该工作,仔细检查你是否完全理解我们在说什么。否则,请说明您现在遇到的问题类型。
    • 只是把东西放在哪里。就像在这个的顶部或底部: if(isset($_POST['textdata'])) { $data=$_POST['textdata']; $fp = fopen('data.txt', 'a');
    【解决方案2】:

    每个&lt;input&gt; 都应该有一个唯一的名称:

    <input type="text" name="textdata_a"><br>
    <br>
    <input type="text" name="textdata_b"><br>
    

    $_POST 将包含所有以用户输入为值的键:

    $textdataA = $_POST['textdata_a'];
    $textdataB = $_POST['textdata_b'];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多