Как отправить массив с помощью GET-запроса из формы ввода в PHP? - PullRequest
0 голосов
/ 13 сентября 2018

Я получаю данные из базы данных и использую GET-запрос для отправки данных на страницу, чтобы удалить данные. Теперь я хочу отправить массив, который содержит несколько значений tr для удаления данных, и я хочу сделать это с помощью запроса GET, а не запроса POST.

Пожалуйста, помогите!

Спасибо

Ответы [ 4 ]

0 голосов
/ 18 сентября 2018

Предположим, у вас есть данные в виде массива $ data

<?php

$ data = array (1,2,3,4,5,6);

?>

<form action="test.php" method="GET">


   <input type="hidden" name="data" value="<?php print base64_encode(serialize($data)); ?>"><br>

<input type="submit" value="Submit">



</form>

После отправки формы она создаст URL со строкой запроса, имеющей закодированное значение вашего массива. Мы можем получить это значение на странице test.php и использовать его для удаления строк в соответствии с вашими данными (по URL).

<?php

$str_var = $_GET["data"];
$array_var = unserialize(base64_decode($str_var));
foreach($array_var as $id)

{

echo $id;


$server=mysqli_connect('localhost','root','');
$re=mysqli_query($server,"DELETE FROM `table` WHERE id=$id");

}

?>
0 голосов
/ 13 сентября 2018

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

$id_string = $_GET['id'];
$id_array = explode(',', $id_string);
0 голосов
/ 13 сентября 2018

Преобразование входных данных формы в массив info[item1], info[item2], info[item3]..

Пример:

 <form action="process.php" method="GET">
        input 1<br>
        <input type="text" name="info[item1]"><br>
        input 2<br>
        <input type="text" name="info[item2]"><br>
        input 3<br>
        <input type="text" name="info[item3]"><br>
        <br>
        <input type="submit" value="Submit">
  </form>

Получить входные данные формы в PHP:

<?php

//Do not use $_GET to access superglobal $_GET Array Directly.
//Use filter_input_array() function.

$request = filter_input_array(INPUT_GET);

//Get form inputs of array 'info'
$input = $request['info'];

//Get form input value
foreach ($input as $key=>$value) 
{
   echo "<p>{$key}=>{$value}</p>";  
}

Выход:

item1=> 1   // Input value to delete.

item2=> 2   // Input value to delete.

item3=>3    // Input value to delete.
0 голосов
/ 13 сентября 2018

Попробуйте передать свои идентификаторы данных в виде строки с разделенными запятыми, например:

https://your.url.here/?ids=1,3,5,7,8

, и сервер разделит запятые для получения значений.

Например:

var url_string = "http://www.example.com/t.html?ids=1,2,3,4,5"; 
var url = new URL(url_string);
console.log(url.searchParams.get("ids").split(','));

Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...