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

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

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

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

Войти через центр авторизации
Похожие вопросы