我一直在阅读PHP中由$_POST
创建的数组。我知道如果我提交一个包含以下输入ID, Name, Date
的表单,我将会得到一个包含$_POST = array('IDNo', 'Name', 'Date', 'State')
的数组。
我试图达到的目的是,我将同时提交多个IDNo, Name, Date, State
个实例。
我确信我可以在提交数据后对其进行处理和清理,但我不确定如何将数据放入多行数据中。
<form method="post" action="test.php">
<input type="hidden" name="IDNo" />
<input type="text" name="Name" />
<input type="text" name="Date" />
<input type="radio" name="State1" />
<input type="hidden" name="IDNo" />
<input type="text" name="Name" />
<input type="text" name="Date" />
<input type="radio" name="State2" />
<input type="hidden" name="IDNo" />
<input type="text" name="Name" />
<input type="text" name="Date" />
<input type="radio" name="State3" />
<input type="submit" value="Test Me" />
</form>
您会注意到的一件事是,无线电输入的每一行都有一个唯一的名称。这与页面上实现的一些jquery有关。我已经看过使用IDNo[]
和Name[]
等,因为这会在$ _POST数组中创建数组,但我在收音机上的唯一输入名称不能用于此,就像每个收音机一样输入将是一个不同的数组
我是否可以更好地将IDNo或行号附加到每个输入名称,或者是否有其他方法可以解决这个问题,我还没有看到?
也许在HTML中将State1
更改为state[1]
并将IDNo, Name, Date
更改为ID[1], Name[1], Date[1]
。
对我而言,关键是我在没有创造任何不安全因素的情况下正确地做到了。
答案 0 :(得分:4)
有很多方法可以做到这一点。 一个是:
<?php $states = array(1,2,3); ?>
<form method="post" action="test.php">
<?php foreach ( $states as $state ) : ?>
<input type="hidden" name="<?php echo 'state['.$state.']'; ?>[IDNo]" />
<input type="hidden" name="<?php echo 'state['.$state.']'; ?>[Name]" />
<input type="hidden" name="<?php echo 'state['.$state.']'; ?>[Date]" />
<input type="hidden" name="<?php echo 'state['.$state.']'; ?>" />
<?php endforeach; ?>
<input type="submit" value="Test Me" />
</form>
您可以使用$_POST['state'][1]['Name']
您可以展开$states
数组以保存更多信息。
答案 1 :(得分:0)
这是一个很好的问题〜
我认为在使用表单发送http数据包时,它只能使用不同的名称属性〜