php a href post isset

时间:2011-02-02 20:47:31

标签: php post

<?php echo isset($_GET["name"])?$_GET['name']:'ddd'; ?>
<?php   
... 
$url = ("http://localhost/web12/directory/list=".$_GET['name']."");
//echo $url;
...
?>
<form action="t.php" method="post" target="_self">
    <a href="t.php?name=aaa">aaa</a>
    <a href="t.php?name=bbb">bbb</a>
    <a href="t.php?name=ccc">ccc</a>
</form>

如何使帖子为空(第一次打开t.php),让$url = ("http://localhost/web12/directory/list=ddd");

现在我的默认$_GET['name']没有回应。$url =("http://localhost/web12/directory/list=")谢谢。

4 个答案:

答案 0 :(得分:3)

这里有几个问题。

如果你能逃脱它,尽量不要使用三元。它们只是难以阅读,而且可能令人困惑。这当然是我自己的看法。另外,我检查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(文件名后面的查询字符串)发送信息。所以你在没有得到你想要的效果的情况下混合它们。

获取

将通过查询字符串(如链接)发送信息:

<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>

请注意提交按钮。

发表

将作为发布信息提交,而不会影响操作网址:

<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>

请注意提交按钮。

ANCHOR 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>

答案 1 :(得分:2)

$variable = isset($_POST['name']) ? $_POST['name'] : 'ddd'; 
... 
$url = "http://localhost/web12/directory/list=" . $variable;

答案 2 :(得分:1)

快速而肮脏的方法是

<?
$val = $_POST['val'];
if (!$_POST) {
 // No posted data, so do something else
 $val = 'Default val';
}
?>

另外,你形成了method =“POST”,它将被$ _POST捕获,而不是$ _GEt

答案 3 :(得分:1)

最干净的方式

<?php

$name = filter_input(INPUT_POST, 'name');
if (!$name) $name = 'ddd';

$url = 'http://localhost/web12/directory/list=' . urlencode($name);