У меня есть следующий код, чтобы связать кнопку с определенным URL-адресом.
stage_link = " 'http://limitless-scrubland-2940.herokuapp.com/game/game.html?stageid=5' "
<form action=stage_link method='get'>
<button>Play stage!</button>
</form>
Кнопка отображается отлично, но она ссылается на: " http://limitless-scrubland-2940.herokuapp.com/game/game.html "
Почему часть запроса-строки (?stageid=5
) усекается? Возможно ли предотвратить это?
Просто. <form action
не может быть запросом $_GET
. Используйте скрытое поле и протестируйте его, если вы должны отправить форму:
<form method='get' action='http://limitless-scrubland-2940.herokuapp.com/game/game.html' method='get'>
<input type='hidden' name='stageid' value='5' />
<input type='submit' value='Play stage!' name='playstage' id='playstage' />
</form>
Теперь проверьте для $_GET['stageid']
на вашей странице PHP.
Для вашей цели, однако, вам просто нужно:
<a id='playstage' href='http://limitless-scrubland-2940.herokuapp.com/game/game.html?stageid=5'>
Play stage!
</a>
<form action="" method='get'>
<button>Play stage!</button>
</form>
<script>
document.forms[0].action= "http://limitless-scrubland-2940.herokuapp.com/game/game.html"
var input = document.createElement('input');
input.type = 'hidden';
input.name = 'stageid';
input.value = '5';
document.forms[0].appendChild(input);
</script>
См. Отправку формы GET с параметрами строки запроса, а скрытые параметры исчезнут из-за причины.
<button type='button'>text</button>
и<input type='button' value='text' />
практически одинаковы. Кнопка на самом деле даже не отправляет форму, если ееtype='submit'
, который может бытьtype
по умолчанию, в зависимости от вашего браузера, если вы не используете JavaScript для отправки формы. Мой второй пример, вероятно, то, что вы хотите, если вам не нужно отправлять форму. Вы всегда можете#playstage{text-decoration:none;}
тег<a>
, например:#playstage{text-decoration:none;}
, добавив отступы и другие функции CSS, чтобы он выглядел как кнопка.