预先填充来自传入链接的输入字段

时间:2011-09-11 22:50:53

标签: php forms

我们有一个Quenstion and Answer脚本。

基本上,表单元素看起来像这样(我认为我的问题是POST而不是GET)

无论如何都要问。

在Q和A页面上,用户可以输入标题和问题。所以形式看起来有点像这样:

<form method="post">
  <input id="askit" type="text" name="q_desc" value="">
    ...blah blah blah
</form>

基本上,我想在外部页面(同一个域)上添加一个输入字段,这样当用户点击提交时,它会将它们带到Q和A页面,并在上面的表单中传播输入字段,其值为他们在上一页上输入了什么。

为此,我添加了id =“askit”

基本上,外部页面会触发这样的东西:

www.somewebsite.com/questions/?askit=hello+world

因为我的表单使用Post,所以我很确定这是梨形的。

请提出任何建议。 ?表格必须是POST,因为它是用于提交问题。

3 个答案:

答案 0 :(得分:2)

您仍然可以分别使用$_POST$_GET PHP超级全局变量来混合和匹配此表单上的POST和GET数据。

<form method="post">
  <imput id="askit" type="text" name="q_desc" value="<?php echo isset($_GET['askit']) ? htmlspecialchars($_GET['askit']) : ''; ?>">
</form>

虽然我不推荐它,但使用$_REQUEST生活可能会更容易,这是POST和GET数据的合并。

答案 1 :(得分:2)

要让http://www.somewebsite.com/questions/?askit=hello+world正常工作,您需要按以下方式更新上面的代码:

<?php
    $askit = '';
    if(array_key_exists('askit', $_GET)) {
        $askit = $_GET['askit'];
    }
?>
<form method="post">
  <input id="askit" type="text" name="q_desc" 
         value="<?php echo htmlentities($askit); ?>">
    ...blah blah blah
</form>

答案 2 :(得分:1)

它非常简单,只需根据请求获取用户使用$_GET['']$_POST['']提交的值,然后将其作为输入值回显喜欢:

<input id="askit" type="text" name="q_desc" value="<?php echo $_GET['askit']?>">

你总是可以使用htmlentities()来确保表单是安全的,并防止人们弄乱你的HTML。