Задать вопрос
UZEIR
@UZEIR
Учусь. Пытаюсь развиваться.

Как не выводить пустой get в url строку?

К примеру из-за get запроса, получается такая ссылка
test.ru/?a=1&b=&v=3&g=&f=1 , как преобразовать ее в
test.ru/?a=1&v=3&f=1. То есть пустые переменные исчезают.
  • Вопрос задан
  • 3232 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
if (!empty($_GET)) {
            $new_get = array_filter($_GET);
            if (count($new_get) < count($_GET)) {
                $request_uri = parse_url('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], PHP_URL_PATH);
                header('Location: ' . $request_uri . '?' . http_build_query($new_get));
                exit;
            }
        }

Где-нибудь в самом начале страницы или точки входа вставьте, будет чистить любые пустые GET-параметры, и не надо в каждой форме что-то мудрить.
Ответ написан
allard
@allard
Серийный программист
Как вариант при отправке формы формируй url, точнее get самостоятельно с помощью js.
Пустые переменные в get потому-что при сабмите формы все поля находящиеся в форме формируют запрос, не зависимо от того пустое поле или скрытое, оно все равно попадет в get.

Просто отловите отправку формы тем же jquery, переберите все поля внутри формы в цикле и из не пустых полей сформируйте запрос (url). А потом просто сделайте редирект на этот url (document.location.href = url).

Или как вариант удалить jsом перед отправкой формы все пустые поля, эффект будет тот который вы хотите.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽