我想将一个搜索值从index.php发布到search.php,
的index.php
<form action="search.php?val=" method="post">
和search.php
<?php echo $_GET['val']?>
或
<?php echo $_POST['val']?>
我想在URL中保留'val'值,但是search.php无法捕获'val'的值,它似乎是“val =”。
答案 0 :(得分:1)
在索引文件的表单内创建一个名为val
的文本字段,例如:
<form action="search.php" method="post">
<input type="text" name="val" value="search string" />
<!-- more form stuff -->
</form>
你现在可以得到它:
<?php echo $_POST['val']?>
但是,如果您想在网址中使用该值,则应将表单的方法修改为get
,如:
<form action="search.php" method="get">
<input type="text" name="val" value="search string" />
<!-- more form stuff -->
</form>
然后你可以在搜索页面上获得它的价值,如:
<?php echo $_GET['val']?>
或者,您可以直接在action
的{{1}}属性中指定搜索字符串,在这种情况下,您不需要form
字段:
val
然后你可以在搜索页面上获得它的价值,如:
<form action="search.php?val=<?php echo $search_string;?>" method="get">
<!-- more form stuff -->
</form>
答案 1 :(得分:1)
您希望实现的目标可以描述为URL参数传递或query string。我们的想法是您可以通过URL传递值,由?variable=value
表示。 URL参数传递的重要部分是使用$_GET
检索值。
因此,请更改此行代码,
<form action="search.php?val=" method="post">
到这行代码,
<form action="search.php" method="get">
您不需要添加action
以包含?val
,只要您的name
属性为{{1}的输入字段,PHP就会为您执行此操作}}
val
提交后,您应该拥有类似的网址
<form action="search.php" method="get">
<input type="text" name="val"/>
<input type="submit" />
</form>
您可以使用http://www.example.com/search.php?val=your_text_here
超全局访问search.php
内部的$_GET
。
<?php
echo $_GET['val'];
?>
答案 2 :(得分:0)
您可以同时使用两者。如果您有&lt; form action =“search.php?val = ...”&gt;, 然后你可以像$ _GET [“val”]一样访问它。任何其他表单元素 但是会以$ _POST []显示你的例子。
顺便说一句,如果参数可能由不同的提交 表格,使用$ _REQUEST。它捕获GET和POST内容。