使用url填充表单 - 多种输入类型

时间:2011-12-31 17:24:37

标签: php javascript forms post get

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

我不是开发人员,所以我在这里有点不太深入,但这是我到目前为止所做的......

<?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一起填充广播并使用网址中的信息选择此表单上的标签?尽可能以最直接的方式?

如果它有帮助的网址是..

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不适合您。我可以看到谷歌搜索大量帮助发布信息使用无线电/选择等但我想要相反,你如何从网址填充这些?

任何帮助都会成为救星

2 个答案:

答案 0 :(得分:0)

我只想使用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,除非你真的想要使用它。

答案 1 :(得分:0)

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

  1. 您无法从Javascript访问PHP变量。 PHP正在服务器上运行,而Javascript在用户浏览器中。
  2. Javascript无法像PHP一样获得$ _GET和$ _POST变量。
  3. 现在您可以做的就是使用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']来获取您的网址。

    然后您不使用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函数可以获得的变量。

    希望这能回答你的问题。