【问题标题】:PHP - Issue with get text outside formPHP - 获取外部文本的问题
【发布时间】:2013-07-10 16:57:11
【问题描述】:

我想获取文本(提交后)并在 inputtext 中回显,但我遇到了问题。 我想在 inputtext 中回显文本,这是表单之外的 inputtext,它失败了。 但是如果在表单中输入文本,则获取文本是成功的。

1.inputtext inside form -> 成功

<form id="form1" method="post" action="">
<input type="text" name='search'/>
<?php
$db = mysql_connect($dbHost,$dbUser,$dbPass);
mysql_select_db($dbname,$db);
$sql = mysql_query("SELECT * FROM adminklasifier");
while($row = mysql_fetch_array($sql)) {
    $clsfr = $row['klasifier'];
    $sql = mysql_query("SELECT * FROM adminklasifier");
        echo '<select name="cmake" id="cmake" autofocus width="10" onchange="document.getElementById(\'inputtext\').value=this.options[this.selectedIndex].text">';
        echo '<option value="0">-Pilih Domain Klasifikasi-</option>';
        while($row = mysql_fetch_array($sql)) {
            echo '<option ' . ($clsfr==$row['klasifier']) . ' value="'.$row['klasifier'].'"'.(($_POST['cmake'] == $row['klasifier']) ? 'selected=selected' : NULL).'>'.$row['klasifier'].'</option>';
    }
    echo '</select>';
}
?>
<input type="submit" id='button' name='button' value="Cari"></input>
<input type="text" name="inputtext" id="inputtext" value="<?php echo $_POST['inputtext'];?>" />
</form>

2.inputtext 表单外 -> 失败

 <form id="form1" method="post" action="">
    <input type="text" name='search'/>
    <?php
    $db = mysql_connect($dbHost,$dbUser,$dbPass);
    mysql_select_db($dbname,$db);
    $sql = mysql_query("SELECT * FROM adminklasifier");
    while($row = mysql_fetch_array($sql)) {
        $clsfr = $row['klasifier'];
        $sql = mysql_query("SELECT * FROM adminklasifier");
            echo '<select name="cmake" id="cmake" autofocus width="10" onchange="document.getElementById(\'inputtext\').value=this.options[this.selectedIndex].text">';
            echo '<option value="0">-Pilih Domain Klasifikasi-</option>';
            while($row = mysql_fetch_array($sql)) {
                echo '<option ' . ($clsfr==$row['klasifier']) . ' value="'.$row['klasifier'].'"'.(($_POST['cmake'] == $row['klasifier']) ? 'selected=selected' : NULL).'>'.$row['klasifier'].'</option>';
        }
        echo '</select>';
    }
    ?>
    <input type="submit" id='button' name='button' value="Cari"></input>
    </form>
    <input type="text" name="inputtext" id="inputtext" value="<?php echo $_POST['inputtext'];?>" />

你能帮忙分析一下这个问题吗? 我想获取文本并在 inputtext 中回显它,但 inputtext 不是表单(如案例 2),你会修复我的代码吗? 谢谢你帮助我。

【问题讨论】:

  • 感谢 sean 编辑帖子
  • 输入标签必须在 &lt;form&gt; 标签内(至少在 HTML5 之前)。如果您希望将其作为表单的一部分提交,则需要将其放在 &lt;form&gt; 标记内。
  • 为什么在表单标签之外需要&lt;input&gt;
  • 哼哼,sean 和 andrewsi,试着捕捉文本并将其放入输入中

标签: php forms text get


【解决方案1】:
<input> fields must exist inside a <form> tag

如果你只想在表单之外显示数据,请将其放在 html 标记中

像这样。

<p><?php echo $_POST['inputtext'];?></p>

【讨论】:

  • 根据 w3 标准 - w3.org/TR/html401/interact/forms.html#form-controls 表单标签之外的输入是有效的 - 从 17.2.1 结束 The elements used to create controls generally appear inside a FORM element, but may also appear outside of a FORM element declaration when they are used to build user interfaces.
  • @Sean 是的,但是如果您不想将它实际用作输入,那么当您稍后回来查看代码时,它只会增加混乱。我承认我认为这个字段没有输入要求
【解决方案2】:

你能发布生成的 HTML 源代码吗?即使元素在表单之外,您的代码也应该显示出来。但是,将它放在表单之外并不是最佳做法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    相关资源
    最近更新 更多