Мне было интересно, как можно связать значение текстового поля HTML-формы с ссылкой. Например, у меня есть 3 ссылки, и каждая ссылка относится к другому файлу PHP, однако мне нужно передать переменную. Из-за дизайна моей страницы я не могу использовать кнопки. Итак, я создал форму с текстовым полем. Как отправить это текстовое поле со ссылками?
НАПРИМЕР:
<form> <input type="text" name="test1" id="test1"></input></form> <a href=index.php?id=$test1">Link 1</a> <a href=index2.php?id=$test1">Link 2</a> <a href=index3.php?id=$test1">Link 3</a>
Надеюсь, это имеет смысл в отношении того, что я пытаюсь сделать.
РЕДАКТИРОВАТЬ:
Я попытался сделать это динамически, но:
Хорошо, я сделал такую функцию:
<script> function awardcode() { var awamount = document.getElementById("awardamount"); document.write('<?php $awardvar = ' + awamount.value + '; ?>'); }; </script>
Затем я сделал ссылку через PHP, которая выглядит так:
echo '<a id=awlink3 name=awlink3 href="index.php?siteid=gmaward&type=xp&post=' . $posts_row['posts_id'] . '&handle=' . $posts_row['handle'] . '&varamount=' . $awardvar . '">Award XP</a>';
Однако это не сработало. Это мой код окна ввода:
<form><input type=text name='awardamount' id='awardamount' onchange='awardcode()' style:'width:10px;'></form>
Когда я помещаю число и затем вкладку, он загружает пустую страницу.
Как я могу настроить это?
Вам нужно будет динамически изменить ссылку с помощью JavaScript. Вот один из подходов:
$('a').on('click',function(e) { e.preventDefault(); var url = $(this).attr('href').split('$')[0]; window.location = url + $('#test1').val(); });
Но лучше было бы добавить событие onchange
в текстовое поле, так что HREF мгновенно изменится, и пользователь сможет увидеть предполагаемый пункт назначения при наведении курсора мыши:
$('#test1').on('change', function () { var val = $(this).val(); $('a[href*=\\?id\\=]').each(function (i, el) { $(el).attr('href', function (j, str) { return str.split('?')[0] + "?id=" + val; }); }); });