【问题标题】:Pre-populate HTML form text from URL从 URL 预填充 HTML 表单文本
【发布时间】:2018-12-02 01:07:38
【问题描述】:

我在我的 php 文件中使用这个表单来创建表单

  <input type="text" name="OrderLNumber" id="OrderLNumber" >
  <br>
  <input type="submit" name="submit" value="Status">

</form>

之后,我尝试从该 URL 预先填写表单 OrderLNumber 字段:

status/2727?OrderLNumber=24206927

页面加载正常,但字段未按我的意愿填写。我怎样才能使这项工作?

【问题讨论】:

  • 看看这里的答案:stackoverflow.com/a/43980063/4925511,它使用了URL constructor
  • 我的表单是通过我的php模板文件创建的,所以这个方法不可用。
  • 这个问题被标记为“javascript”,因此是我的建议。您是否可以控制表单的呈现方式?如果是这样,您可能可以执行以下操作:&lt;input value="&lt;?php echo $_GET["OrderLNumber"] ?&gt;" ... /&gt; 将预先填充该值。
  • 我可以这样做,但我希望用户能够更改该值。如果我这样做,那么用户将只能选择使用预填充的值。
  • 我不确定你的意思;该值将被预先填充,但用户仍然可以修改输入字段中的值。你能稍微扩展一下你的问题吗?

标签: javascript php html forms


【解决方案1】:

您需要使用$_GET['OrderLNumber']变量从url中获取订单号。

下面的代码将测试表单是否已提交。如果 from 已经加载了新的没有 POST 数据的数据,它将从 url 中获取订单号。如果表单已提交并且有 POST 数据,它将使用表单中的任何内容作为订单 ID。

像这样:

<?php

if(isset($_POST['OrderLNumber']) && $_POST['OrderLNumber']){

  $orderLNumber = $_POST['OrderLNumber'];

}else{

  if(isset($_GET['OrderLNumber']) && $_GET['OrderLNumber']){

  $orderLNumber = $_GET['OrderLNumber'];

  }

}

?>


<form action="" method="POST">

  <input type="text" name="OrderLNumber" id="OrderLNumber" value=" <?php echo $orderLNumber; ?> " ><br>
  <input type="submit" name="submit" value="Status">

</form>

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 2018-09-02
    • 1970-01-01
    • 2022-09-30
    • 2018-08-15
    • 2013-04-01
    相关资源
    最近更新 更多