我有一个表单,其中包含从数据库中拉出的字段作为下拉列表。我需要在下拉列表中选择文本,但我事先并不知道字段ID是什么。
这基本上只是一个已生成的表单。我不需要从数据库中提取任何内容,它已经在此页面上。我需要做的就是获取表单信息并通过电子邮件发送,不要写入数据库。
我知道如何基于ID为其他字段执行_Request,但我不知道如何做到这一点。 ID更改。它可以是ID = 1,ID-2等。
我需要执行以下操作:_REQUEST表单元素,其中ID为LIKE“ID [*]”或类似的东西。
教程的任何建议或链接?
以下是下拉列表在页面上呈现内容的几个示例:
<div class="wrapperAttribsOptions">
<h4 class="optionName back"><label class="attribsSelect" for="attrib- 1">Model</label></h4>
<div class="back">
<select name="id[1]" id="attrib-1">
<option value="45">VC3-4C</option>
<option value="1">VC3-4PG</option>
<option value="3">VC3-4SG</option>
<div class="wrapperAttribsOptions">
<h4 class="optionName back"><label class="attribsSelect" for="attrib-14">SPK Model</label></h4>
<div class="back">
<select name="id[14]" id="attrib-14">
<option value="43">SPK-4</option>
<option value="44">SPK-8</option>
</select>
TIA
答案 0 :(得分:1)
编辑: Scott Saunders是对的,PHP会自动为您创建一个数组。如果由于某种原因他的代码不起作用,下面的代码可能仍然适用(可能因PHP配置而异)。
最简单的方法是使用正则表达式:
foreach($_REQUEST as $key => $value)
{
if(preg_match("/id\[[0-9]*\]/", $key))
{
// $key now contains the name, and $value the value.
}
}
这假设id始终是数字。
答案 1 :(得分:1)
括号[]表示PHP将使用已发布的值创建数组变量。所以你应该将$_REQUEST['id']
作为一个数组。应该有一个值由表单中的数字键入(第一个示例中为$_REQUEST['id'][1]
,第二个示例中为$_REQUEST['id'][14]
)。
如果只有一个值(你没有说明你要对这些值做什么),那么你可以将它从阵列中移开。
$value = array_shift($_REQUEST['id']);
如果有多个值,您可以遍历它们:
foreach($_REQUEST['id'] as $number => $value) { ... }
答案 2 :(得分:0)
如果有大量字段或无法识别id值,我会按照Arda的回答。
另一种方法是直接询问id集合:
$id_1 = $_POST['id'][1];
$id_14 = $_POST['id'][14];
在名称中使用方括号发布到服务器的所有项目都将转换为数组。正如您所做的那样,已经指定了索引,根据需要可能会更有利。