当多个存在同名时从url获取数据

时间:2014-05-05 04:22:48

标签: php html get

我有一个带有复选框的表单,可以将数据发布到下一页的网址。我知道这不安全,不会在任何项目中使用。这仅用于学习目的。

我正在推送从我的数据库中提取的任务。

我的网址看起来像这样:

submitted.php?id=?12345

根据我检查的任务复选框的数量,我需要它将ID推送到下一页。

这是我的表格:

<form action="Billing.php?id=<?PHP echo $customerid;?>" method="post">
        <?php $query = "SELECT * FROM Service"; 
               $result = mysqli_query($con,$query); 
               while ($line = mysqli_fetch_array($result, MYSQL_ASSOC)) { ?> 
               <input type="checkbox" name="service" value="<?php echo $line['Service_ID']?>"><?php echo $line['Service_Type']?> <br> <?php } ?> 



        <input type="submit" name="next" value="Check Out" style="bottom:3%;Right:3%;position:absolute;background-color:#B2B2B2;font-weight:bold;border-style:double;border-color:black;float:right;" >
    </form>
    </div><!--serviclist-->
    <div id="cust">
            <h3>Customer Information</h3>
            <table style="left: 7%;right: 5%;top: 20%;position: absolute;">
                <tr>
                    <td>Name:<input class="rightText" name="customername" type="text" value="<?PHP echo $name; ?> "></td>
                </tr>
                <tr>
                    <td>Make: <input name="make" type="text" value="<?PHP echo $make; ?>"></td><td>Model: <input class="rightText" name="model" type="text" value="<?PHP echo $model; ?>"></td>
                </tr>
                <tr>
                    <td>Color: <input name="color" type="text" value="<?PHP echo $color; ?>" ></td><td>VIN: <br><input class="rightText" name="VIN" type="text" value="<?PHP echo $vin; ?>" ></td>
                </tr>
            </table>

基本上我试图让它发布我的客户ID和我检查到下一页的服务。

3 个答案:

答案 0 :(得分:3)

我不知道你是如何设法以此查询字符串结尾的,但我们假设你有:

index.php?asd=1&asd=2&asd=3

你可以通过

抓住它
var_dump($_SERVER['QUERY_STRING']);

输出 string 'asd=1&asd=2&asd=3' (length=17)

然后按&分隔符

拆分
var_dump(explode('&', $_SERVER['QUERY_STRING']));

输出:

array (size=3)
0 => string 'asd=1' (length=5)
1 => string 'asd=2' (length=5)
2 => string 'asd=3' (length=5)

然后用=分割,找到key =&gt;值对。

然而,我发现这种方法非常缺乏吸引力且效率低下。

如果您可以控制复选框名称,则构建查询字符串,如:

index.php?asd[]=1&asd[]=2&asd[]=3

然后

var_dump($_GET['asd']);

将返回数组

array (size=3)
0 => string '1' (length=1)
1 => string '2' (length=1)
2 => string '3' (length=1)

答案 1 :(得分:1)

你写错了你的网址,它应该是这样的:

submitted.php?taskid[]=1&taskid[]=7

答案 2 :(得分:0)

将复选框作为ARRAY, 例如
input type =“checkbox”name =“taskid []”value =“你喜欢的任何值”

在服务器端php中,使用FOR-EACH LOOP来获取所有任务

    <?php
$tasks = $_GET['taskid'];  
     foreach($tasks as $values)  
       {  
        // do your operations here  
          echo $values;  
         }