我在具有变量名称的活动网站上有下拉字段,因此我不确定如何使用$ _POST
捕获数据一个例子是
tkt-slctr-qty-346[]
tkt-slctr-qty-358[]
是否可以通过使用通配符来使用$ _POST捕获数据?
编辑:这是html
<select name="tkt-slctr-qty-346[]" id="ticket-selector-tbl-qty-slct-346-1" class="ticket-selector-tbl-qty-slct">
<option value="0"> 0 </option>
<option value="1"> 1 </option>
<option value="2"> 2 </option>
<option value="3"> 3 </option>
<option value="4"> 4 </option>
<option value="5"> 5 </option>
<option value="6"> 6 </option>
<option value="7"> 7 </option>
<option value="8"> 8 </option>
<option value="9"> 9 </option>
<option value="10"> 10 </option>
</select>
答案 0 :(得分:3)
而不是将id作为&#34; name&#34;的一部分。 (它将用作$_POST
数组中的键,PHP支持直接使用数组表示法:
name="tkt-slctr-qty[346]"
name="tkt-slctr-qty[358]"
然后,您可以在一个密钥下迭代这些:
if (!empty($_POST['tkt-slctr-qty']) && is_array($_POST['tkt-slctr-qty'])) {
foreach ($_POST['tkt-slctr-qty'] as $id => $qty) {
// handle each id/qty value
}
}
如果您做也为每个ID添加了多个选择框,请为每个ID添加[]
,并创建内部循环:
name="tkt-slctr-qty[346][]"
...
name="tkt-slctr-qty[358][]"
然后在内循环处理它:
if (!empty($_POST['tkt-slctr-qty']) && is_array($_POST['tkt-slctr-qty'])) {
foreach ($_POST['tkt-slctr-qty'] as $id => $qtys) {
if (is_array($qtys)) {
foreach ($qtys as $qty) {
// handle each qty if there are multiple fields.
}
}
}
}
答案 1 :(得分:2)
您可以将变量发布到数组,然后在过滤时迭代它。
foreach($_POST as $key => $value) {
$pos = strpos($key , "tkt-slctr-qty-");
if ($pos === 0){
// do something with $value
}
}
答案 2 :(得分:2)
当您提交这些数组时,PHP将以这种方式接收它们:
$_POST['tkt-slctr-qty-358'][0]
$_POST['tkt-slctr-qty-358'][1]
// ...
如果您想动态捕获密钥末尾的数字,则可以执行以下操作:
foreach ($_POST as $k => $v) {
if (strpos($k, 'tkt-slctr-qty-') === 0) {
foreach ($v as $innerValue) {
echo 'Key: ' . $k . ' has value: ' . $innerValue . '<br>';
}
}
}
答案 3 :(得分:0)
你必须通过保存集合的$ _POST数组进行迭代。请遵循以下模式
return "C Status"