Получить данные из URL-адреса, если несколько существует с одним и тем же именем

У меня есть форма с флажками, которая публикует данные в URL для следующей страницы. Я знаю, что это небезопасно и не используется ни в одном проекте. Это только для целей обучения.

Я выдвигаю задачи, которые извлекаются из моей базы данных.

Мой URL выглядит так:

submitted.php?id=?12345

В зависимости от того, сколько из флажков задач я установил, мне нужно, чтобы идентификаторы были перенесены на следующую страницу.

вот моя форма:

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

в основном я пытаюсь заставить его опубликовать мой идентификатор клиента и мои услуги, которые были проверены на следующей странице.

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)

Затем разделите на =, чтобы найти пары ключ => значение.

Однако такой подход я считаю очень непривлекательным и неэффективным.

Если у вас есть контроль над именами флажков, создайте строку запроса, например:

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)

Вы неправильно написали свой URL, он должен выглядеть так:

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

Поставить флажок в качестве массива, например
input type="checkbox" name="taskid[]" value="любое значение, которое вам нравится"

и в php на стороне сервера используйте FOR-EACH LOOP для получения всех задач

    <?php
$tasks = $_GET['taskid'];  
     foreach($tasks as $values)  
       {  
        // do your operations here  
          echo $values;  
         }  
Другие вопросы по тегам