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

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

К примеру из-за get запроса, получается такая ссылка
test.ru/?a=1&b=&v=3&g=&f=1 , как преобразовать ее в
test.ru/?a=1&v=3&f=1. То есть пустые переменные исчезают.
  • Вопрос задан
  • 3154 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 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ом перед отправкой формы все пустые поля, эффект будет тот который вы хотите.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы