我的页面上有一个输入和一些隐藏字段的表单,我被要求通过“post array”传递这些数据,但我不确定如何执行此操作,
这是我现在正在做的事情的片段
<form enctype="multipart/form-data" action="process.php" method="POST">
...
more inputs
...
<!-- Hidden data -->
<input type="hidden" name="TimeToRenderHoursInput" value="<?php echo $RenderHours; ?>" />
<input type="hidden" name="TimeToRenderDaysInput" value="<?php echo $RenderDays; ?>" />
<input type="hidden" name="TimeToRenderYearsInput" value="<?php echo $RenderYears; ?>" />
<input type="hidden" name="ContentMinutesInput" value="<?php echo $ContentMinutes; ?>" />
<input type="hidden" name="ContentMinutesSelector" value="<?php echo $ContentMinutesSelector; ?>" />
<input type="hidden" name="PriorityInput" value="<?php echo $Priority; ?>" />
<input type="hidden" name="AvgFrameRenderTimeInput" value="<?php echo $AverageFrameRenderTime; ?>" />
<input type="hidden" name="AvgFrameRenderTimeSelector" value="<?php echo $AverageFrameRenderSelector; ?>" />
<input type="hidden" name="CoresInTestInput" value="<?php echo $CoresInTest; ?>" />
<input type="hidden" name="EstPriceInput" value="<?php echo $EstPrice; ?>" />
<!-- End hidden -->
<input type="image" src="http://www.venndigital.co.uk/testsite/renderbutton/_includes/images/button/submit.jpg" alt="Submit" value="Submit" style="border:0!important;" />
在我的process.php中,然后调用数据......
$first_name = $_POST['first_name'];
$company_name = $_POST['company_name'];
$email_from = $_POST['email'];
$address = $_POST['address'];
$postcode = $_POST['postcode'];
$RenderHours = $_POST['TimeToRenderHoursInput'];
$RenderDays = $_POST['TimeToRenderDaysInput'];
$RenderYears = $_POST['TimeToRenderYearsInput'];
$ContentMinutes = $_POST['ContentMinutesInput'];
$ContentMinutesSelector = $_POST['ContentMinutesSelector'];
$Priority = $_POST['PriorityInput'];
$AverageFrameRenderTime = $_POST['AvgFrameRenderTimeInput'];
$AverageFrameRenderSelector = $_POST['AvgFrameRenderTimeSelector'];
$CoresInTest = $_POST['CoresInTestInput'];
$EstPrice = $_POST['EstPriceInput'];
有没有办法将其发布为数组?无论如何,我的方法是不好的做法?
答案 0 :(得分:42)
为每个输入命名为数组格式:
<input type="hidden" name="data[EstPriceInput]" value="" />
然后在PHP $_POST['data'];
中将是一个数组:
print_r($_POST); // print out the whole post
print_r($_POST['data']); // print out only the data array
答案 1 :(得分:7)
发布该数据时,它会作为数组存储在$_POST
中。
您可以选择执行以下操作:
<input name="arrayname[item1]">
<input name="arrayname[item2]">
<input name="arrayname[item3]">
然后:
$item1 = $_POST['arrayname']['item1'];
$item2 = $_POST['arrayname']['item2'];
$item3 = $_POST['arrayname']['item3'];
但我没有看到这一点。
答案 2 :(得分:5)
事实上,你已经这样做了。提交表单时,数据将通过一个post数组($ _POST)传递。您的process.php正在接收该数组并将其值重新分配为单个变量。
答案 3 :(得分:0)
如果您已经在服务器(PHP)端拥有它,为什么要通过帖子发送它?
为什么不将数组保存到$_SESSION
变量,以便在表单提交时使用它,这可能使其更“安全”,因为客户端无法通过编辑源来更改变量。
这将取决于你真正想要做的事情。
答案 4 :(得分:-1)
您可以使用内置功能:
extract($_POST);
它将为$_POST
中的每个条目创建一个变量。
答案 5 :(得分:-2)
你所做的并不一定是不好的做法,但它确实需要大量的打字。我会完成你想要做的事情。
foreach($_POST as $var => $val){
$$var = $val;
}
这将获取所有POST变量并将它们放在各自的变量中。 因此,如果您有一个名为email的输入字段,并且luser放入Someone@example.com,您将拥有名为$ email的var,其值为“Someone@example.com”。
答案 6 :(得分:-4)
如果您希望帖子中的所有内容都是$ Variables,您可以使用以下内容:
foreach($_POST as $key => $value) {
eval("$" . $key . " = " . $value");
}