【问题标题】:Populating a form using a url - multiple input types使用 url 填充表单 - 多种输入类型
【发布时间】:2012-01-31 03:32:41
【问题描述】:

您好,我正在尝试创建一个由之前页面上的表单部分预填充的表单。然后将这些信息发布到这个新页面,然后将其填充到该页面上的表单中,准备提交到数据库。

我不是开发人员,所以我在这里有点超出我的深度,但这就是我到目前为止所拥有的......

<?php
    $amount = $_GET['text-386'];
    $covermultiple = $_GET['radio-30'];
    $coverdobd = $_GET['d-o-b-d'];
    $coverdobm = $_GET['d-o-b-m'];
    $coverdoby = $_GET['d-o-b-y'];
?>

<script type="text/javascript">
    document.getElementById('text-386').value = "<?=$amount ?>";
    document.getElementByName('radio-30').checked = "checked";
    document.getElementById('d-o-b-d').value = "<?=$coverdobd ?>";
    document.getElementById('d-o-b-m').value = "<?=$coverdobm ?>";
    document.getElementById('d-o-b-y').value = "<?=$coverdoby ?>";
</script>

我可以从 URL 中获取值,并且可以在页面上很好地回显这些值,我什至设法让 text-386 出现在正确的位置.. 就这样!问题是其他元素是一个带有两个选项(radio-30)的单选按钮和一个带有人 d-o-b 的日期、月份和年份的 3 个选择框。这两位正在填充。

简而言之..

如何使用 javascript(如果这是正确的方法)与 php 一起使用 url 中的信息填充收音机并选择此表单上的标签?以尽可能直接的方式?

如果有帮助,网址是..

http://localhost/datacapture/form-page/radio-30=Just+for+me&text-386=%C2%A340%2C000&d-o-b-d=11&d-o-b-m=05&d-o-b-y=1977

这显然是在我正在使用的本地构建中,因此该 URL 对您不起作用。当我在谷歌上搜索很多帮助发布信息时,我可以看到使用收音机/选择等,但我想要相反,你如何从 url 填充这些信息?

任何帮助都是救命稻草

【问题讨论】:

    标签: php javascript forms post get


    【解决方案1】:

    我只会使用 if 语句。

    if( $covermultiple == "Just for me" ) {
      // Echo the field here
      echo "<input type='radio' name='radio-30' value='Just for me' checked />";
    }
    
    else {
      // Check for the next case
    }
    

    将此块放在您希望单选按钮所在的位置。

    我认为这样的事情会很好。我不认为在这种情况下你真的需要 javascript,除非你真的想使用它。

    【讨论】:

      【解决方案2】:

      我不是 100% 我有答案,但我在任何地方都找不到评论,所以我会在这里发帖。

      1. 您无法从 Javascript 访问 PHP 变量。 PHP 在服务器上运行,Javascript 在用户浏览器中。
      2. Javascript 无法像 PHP 一样获取 $_GET 和 $_POST 变量。

      现在您可以做的是,使用 JavaScript,您可以获得包含当前 URL 的 document.location 字符串。您可以将该 URL 分解为多个部分。为此,请使用此功能:

      <script>
      
      var $_GET = {};
      
      document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
          function decode(s) {
              return decodeURIComponent(s.split("+").join(" "));
          }
      
          $_GET[decode(arguments[1])] = decode(arguments[2]);
      });
      
      alert($_GET['someVar']); // This will alert content of someVar
      

      现在您可以使用 $_GET['vars'] 来获取您的 URL 变量。

      然后您不使用 PHP 来回显变量内容,您只需准备好您的 URL,以便它包含您要插入到表单中的变量。

      所以你做这样的事情:

      <script type="text/javascript">
          document.getElementById('text-386').value = $_GET['urlVar'];
          document.getElementByName('radio-30').checked = "checked";
          document.getElementById('d-o-b-d').value = $_GET['urlVar'];
          document.getElementById('d-o-b-m').value = $_GET['urlVar'];
          document.getElementById('d-o-b-y').value = $_GET['urlVar'];
      </script>
      

      如您所见,JavaScript 从 URL 获取变量,使用您编写的函数 $_GET 并且它不需要 PHP。您可以使用 PHP 生成所需的 URL,因此它们包含您可以使用 $_GET javascript 函数获取的变量。

      希望这能回答你的问题。

      【讨论】:

      • 嘿,谢谢我明白了原理,但是当我将它添加到我的代码中时,它似乎并没有实现。我可以提醒这些值,但这个 javascript 似乎没有实现。抱歉,如果我遗漏了一些非常明显的东西。
      猜你喜欢
      • 2015-03-30
      • 1970-01-01
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      相关资源
      最近更新 更多