2012-07-27 97 views
0

我想通过POST以HTML格式发送PHP数组。我正在使用的代码如下:如何通过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> 

如何发送PHP数组的HTML表单?

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

+0

您可以使用隐藏变量。 – 2012-07-27 08:39:51

+1

这是不是很清楚你试图实现,但发送数组的最佳方式是序列化(我认为更好的做法是使用['json_encode'](http://tw.php.net/manual/en/function.json -encode.php)/ ['json_decode'](http://tw.php.net/manual/en/function.json-decode.php))。 – Leri 2012-07-27 08:39:52

+0

为什么有人把这个问题的负面评价?请任何人告诉我。 – Vivek 2012-07-27 08:50:25

回答

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将很容易验证IDEcode assist也将可用。

2
<?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> 
0

这里的是一个简单的例子:

$content = array('111', '222'); 

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

你可以选择使用serializeunserialize发送的值。

相关问题