Могу ли я использовать гиперссылки в качестве формы отправки, которая публикует значения $ _GET, вместо создания гиперссылки со значениями $ _GET?

#html #url #hyperlink #get #form-submit

#HTML #url #гиперссылка #получить #форма-отправить

Вопрос:

Я использую много значений get на одной странице и создаю гиперссылку с добавлением?var=valueamp; … каждый раз требуется время. Я хотел бы использовать гиперссылки в качестве кнопки отправки в форме, и html сразу прикрепил бы переменные к URL.

Обновление: Я использовал этот метод, и теперь он отлично работает.

 <a href="index.php?
<? foreach($_GET as $gk=>$gv)
{
echo $gk."=".$gv."amp;";
} 
?>
pager=
<? echo $i; ?>">
<? echo $i; ?>
</a>
  

Обновление 2:
Создание URL-адресов — это слишком большая работа, теперь я решил использовать скрытые поля в текущих формах и получать значения get по умолчанию для скрытых значений. Для сохранения значений get я не буду создавать ссылку. Я опубликую те же значения get из формы get. это работает просто отлично. и мне нравится использовать стандартные формы, потому что стандартные вещи работают лучше всего.

Комментарии:

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

Ответ №1:

 <a href="javascript:document.formname.submit();">Submit</a>
  

она отправит форму с именем атрибута =»formname». если метод атрибута =»get», то все ваши отправленные данные будут отправлены в ваш атрибут action = «url.php «с параметрами.

Комментарии:

1. Хотя это работает без проблем, мне часто не нравится полагаться на Javascript для отправки ссылки, для которой не требуется использовать Javascript (просто чтобы мне, как разработчику, было проще читать / создавать).

Ответ №2:

Вы могли бы создать функцию в php, которая записывает все переменные $ _GET для вас:

 function WriteGetForHyperlink ( $array ) {
    $output = "?";
    foreach ( $array as $key=>$value ) {
        $output .= $key.'='.$value.'amp;';
    }
    return $output;
}
  

Тогда ваша HTML-ссылка может быть:

 <a href='wherever.html<?= WriteGetForHyperlink( $_GET ) ?>'>Link</a>
  

Выполнение этого позволит вам добавить больше переменных get в конец ссылки, или вы могли бы передавать пользовательские массивы (таким образом, вместо всего $ _GET, возможно, только две или три его части), и вам не нужно использовать javascript или иметь много HTML на ненужной странице.

или

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

 <form method='GET' action='wherever.html'>
 <input type='hidden' name='var1' value='1' />
 <input type='hidden' name='var1' value='1' />
 <input type='submit' class='submit-link' value='Link' />
</form>
  

Вот некоторые CSS:

 input.submit-link {
    border: none;
    background: Transparent;
    cursor: pointer;
    color: #00f
}
input.submit-link:hover {
    text-decoration: underline;
}
  

Ответ №3:

у вас есть два варианта для достижения этого: первый — использовать стандартный

 <input type="submit" />
  

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

 <a href="javascript:document.getElementById('myFormId').submit()" />
  

к более сложной, которая включает в себя фреймворк, такой как mootools или jquery