【问题标题】:How to send PHP array by html form by POST type如何通过 POST 类型的 html 表单发送 PHP 数组
【发布时间】:2012-07-25 22:10:05
【问题描述】:

我正在尝试通过 POST 以 html 形式发送 PHP 数组。我正在使用的代码如下:

<?php
    $content = array('111', '222' );
?>

    <html>
    <head>
    <title>PAGE TITLE</title>
    </head>
        <body>
            <form name="downloadexcel" action="downloadexcel.php" method="post">
                <input type="text" name="data" value="<?php echo $content; ?>"/>
                <a href="javascript: submitform()">Download</a>
            </form>
            <script type="text/javascript">
                function submitform()
                {
                  document.downloadexcel.submit();
                }
            </script>
        </body>
    </html>

如何通过 html 表单发送 PHP 数组?

任何网页链接或源代码将不胜感激。

【问题讨论】:

  • 目前还不清楚您要达到什么目的,但发送数组的最佳方式是序列化(我认为更好的做法是使用json_encode/json_decode)。
  • 为什么有人给这个问题打负分?任何人都可以告诉我。

标签: php javascript html arrays post


【解决方案1】:
<?php
$content = array('111', '222' );
?>

<html>
<head>
<title>PAGE TITLE</title>
</head>
    <body>
        <form name="downloadexcel" action="downloadexcel.php" method="post">
            <?php foreach($content as $c) { ?>
               <input type="text" name="data[]" value="<?php echo $c; ?>"/>
            <?php }  ?>
            <a href="javascript: submitform()">Download</a>
        </form>
        <script type="text/javascript">
            function submitform()
            {
              document.downloadexcel.submit();
            }
        </script>
    </body>
</html>

【讨论】:

    【解决方案2】:

    你不能像这样发送数组。它将返回Array。你可以这样做

    <form name="downloadexcel" action="downloadexcel.php" method="post">
    
    <?php foreach ($content as $item): ?>
        <input type="text" name="data[]" value="<?php echo $item; ?>"/>
    <?php endforeach ?>
    
    <a href="javascript: submitform()">Download</a>
    </form>
    

    这个变体最适合在模板或代码中的任何地方使用。 HTML 将很容易被 IDE 验证,code assist 也将可用。

    【讨论】:

      【解决方案3】:

      这是一个简单的例子:

      $content = array('111', '222');
      
      foreach($content as $c)
      {
          echo "<input name='arr[]' value='{$c}'>";
      }
      

      您也可以使用serializeunserialize 来发送值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多