Здесь есть несколько проблем.
Старайтесь не использовать троицы, если вам это сойдет с рук. Их просто трудно читать, и они могут сбить с толку. Это конечно мое собственное мнение. Кроме того, я проверяю с помощью strlen () вместо isset, так как у меня были проблемы с isset () и массивами.
<?php
if (strlen($_GET["name"]) > 0) {
$urlname = $_GET['name'];
echo "GET: $urlname";
} elseif (strlen($_POST["name"]) > 0) {
$urlname = $_POST['name'];
echo "POST: $urlname";
} else {
$urlname = 'ddd';
echo "NONE: $urlname";
}
?>
Вам не нужны скобки вокруг объявления строки.
<?php
$url = "http://localhost/web12/directory/list=".$urlname;
echo $url;
?>
Формы получают или публикуют данные только путем предоставления информации, когда теги anchor (a) отправляют информацию через get (строка запроса после имени файла). Таким образом, вы смешиваете их без получения желаемого эффекта.
GET
Отправит информацию через строку запроса (например, по ссылке):
<form action="t.php" method="get" target="_self">
<input type="radio" name="name" value="aaa"/> AAA<br/>
<input type="radio" name="name" value="bbb"/> BBB<br/>
<input type="radio" name="name" value="ccc"/> CCC
<input type="submit"/>
</form>
Обратите внимание на кнопку отправки.
POST
Предоставит в качестве почтовой информации, не затрагивая действия URL:
<form action="t.php" method="post" target="_self">
<input type="radio" name="name" value="aaa"/> AAA<br/>
<input type="radio" name="name" value="bbb"/> BBB<br/>
<input type="radio" name="name" value="ccc"/> CCC
<input type="submit"/>
</form>
Обратите внимание на кнопку отправки.
Якорь GET
Ссылки не запускают отправку формы, независимо от того, находятся ли они внутри элемента формы или вне его. Они просто не являются частью процесса отправки формы.
<a href="t.php?name=aaa">aaa</a>
<a href="t.php?name=bbb">bbb</a>
<a href="t.php?name=ccc">ccc</a>