Php 在输入的末尾添加一个整数';获取特定url的名称

Php 在输入的末尾添加一个整数';获取特定url的名称,php,Php,我正在尝试获取一个url,从中可以检索所选的值。 例如,如果我在a和b上打勾,然后是sumbit,我将得到: index.php?category=1&&category=2 我想得到这个:index.php?category0=1&category1=2 因此,我可以稍后使用$\u get['category0']获取此特定值 是否有方法为所选复选框添加计数器并添加0,1,2,3。。在输入名称的末尾 <form action="" method="get">

我正在尝试获取一个url,从中可以检索所选的值。 例如,如果我在a和b上打勾,然后是sumbit,我将得到:

index.php?category=1&&category=2
我想得到这个:index.php?category0=1&category1=2 因此,我可以稍后使用$\u get['category0']获取此特定值

是否有方法为所选复选框添加计数器并添加0,1,2,3。。在输入名称的末尾

<form action="" method="get"> 

    <!-- this will be a php loop instead of hardcored 
         which will retrieve data from the db -->

    <label><input type="checkbox" name="category" value="1">a</label>
    <label><input type="checkbox" name="category" value="2">b</label>
    <label><input type="checkbox" name="category" value="3">c</label>
    <label><input type="checkbox" name="category" value="4">d</label>
    <label><input type="checkbox" name="category" value="5">e</label>

    <input type="submit">
</form>

A.
B
C
D
E

类别变量相互覆盖,请尝试以下操作:

<form action="" method="get"> 

    <!-- this will be a php loop instead of hardcored 
         which will retrieve data from the db -->

    <label><input type="checkbox" name="category[]" value="1">a</label>
    <label><input type="checkbox" name="category[]" value="2">b</label>
    <label><input type="checkbox" name="category[]" value="3">c</label>
    <label><input type="checkbox" name="category[]" value="4">d</label>
    <label><input type="checkbox" name="category[]" value="5">e</label>

    <input type="submit">
</form>

你是说像这样的

for ($i=0;$i<3;$i++)
echo '<label><input type="checkbox" name="category'.$i.'" value="'.$i.'">a</label>';

用于($i=0;$i这更像是一个HTML问题,而不是一个PHP问题,因为无论服务器使用何种技术,浏览器都会一致地发送信息。提交表单时,浏览器使用
元素输入的名称和值属性。要按您所说的接收参数,请更改名称和值以下属性:

<label><input type="checkbox" name="category0" value="1">a</label>
<label><input type="checkbox" name="category1" value="2">b</label>
<label><input type="checkbox" name="category2" value="3">c</label>
<label><input type="checkbox" name="category3" value="4">d</label>
<label><input type="checkbox" name="category4" value="5">e</label>
a
B
C
D
E
编辑:在服务器端,您可以执行以下操作来生成上述标记:

$category_names = array("a", "b", "c");
for ($i=0;$i<count($category_names);$i++) {
  echo '<label><input type="checkbox" name="category'.$i.'" value="'.$i+1.'">'.$category_names[$i].'</label>';
}
$category_names=数组(“a”、“b”、“c”);

对于($i=0;$i使用for循环?似乎你已经知道答案了,你试过了吗?是的,但只是在每个名称的末尾添加0、1、2不是我想要的,因为我不知道可以右键单击什么。。如果单击d和e,那么d应该是类别0,e应该是类别1这是一组复选框,而不是一组单选按钮。因此,给每个checkbox唯一名称..未选中的复选框将不会发送到服务器,因此,对于post,如果(设置($_post['category1']),则选中名为category1的复选框,如果$_post['category1']未设置,则复选框未选中。即,为每个复选框指定一个唯一的名称。这是硬编码。我不希望这样。请参见我的编辑,如果您的表单是由PHP代码生成的,则必须使用循环生成。然后,您可以将更多类别添加到数组中,并使其自动填充(或者可能是从数据库或其他数据源获取的)。我想到了这一点,这将返回数组。因此,如果我选择a和b,我将得到12(即类别1和类别2),但是我如何将其传递到查询中以显示category0=1和category1=2的结果?为什么不在
$上执行foreach来处理这个问题呢['category']
在您的响应脚本中?
<label><input type="checkbox" name="category0" value="1">a</label>
<label><input type="checkbox" name="category1" value="2">b</label>
<label><input type="checkbox" name="category2" value="3">c</label>
<label><input type="checkbox" name="category3" value="4">d</label>
<label><input type="checkbox" name="category4" value="5">e</label>
$category_names = array("a", "b", "c");
for ($i=0;$i<count($category_names);$i++) {
  echo '<label><input type="checkbox" name="category'.$i.'" value="'.$i+1.'">'.$category_names[$i].'</label>';
}