在输入名称的末尾添加一个整数以获取特定的URL

时间:2014-06-01 21:21:35

标签: php

我正在尝试获取一个可以从中检索所选值的网址。 例如,如果我在a和b上勾选一个复选标记,那么我会得到:

index.php?category=1&&category=2

我想改为:index.php? category0 = 1&& category1 = 2 因此我可以稍后使用$ _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>

3 个答案:

答案 0 :(得分:1)

类别变量会相互覆盖,请尝试以下方法:

<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>

甚至:

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

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

然后您可以通过这种方式获取信息:

$_GET['category']['a']

答案 1 :(得分:0)

你的意思是这样的吗?

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

这取决于您想要对数据做什么(您可能需要根据需要调整此示例中的标签文本),通常有几种传递数据的方法所有工作,但需要不同程度的努力。

答案 2 :(得分:0)

这是一个HTML问题,而不是PHP问题,因为无论您的服务器使用什么技术,浏览器都会一致地发送信息。提交表单时,浏览器使用<form>元素输入的名称和值属性。要按照您的说法接收参数,请将您的名称和值属性更改为以下内容:

<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>';
}