html:稍后在页面中访问选项

时间:2014-01-17 21:15:45

标签: php html html-select

我是html / php的新手,我找不到正确的术语,让google向我展示我认为相当简单的内容。

我希望能够从form1中选择选项到list2中的列表选项。 然后我想在form3中使用form1和form2中的选定选项,但是当我选择option2时,我将失去原始选择。我在这里放了一个图表来帮助解释:http://imgur.com/c2Tx88O

我可能完全错了。建议将不胜感激。

<form name='form1' action='./results.php'>
    <b>Data Origin:</b><br>
    <input type="radio" name="origin" value="SEQ" onclick=submit() selected >Barcode Sequencing
    <input type="radio" name="origin" value="MIC" onclick=submit() >Microscopy
</form>

<form name='form2' action='./results.php'>
    <b>Select a Site:</b><br>
    <?php
        foreach($_GET as $key=>$value){
                $$key = $value;
                $origin = $value;
        }

        $sites = glob("analyses/$origin/*");

        foreach ($sites as $site){
            $site = preg_replace("/analyses\/$origin\//i", '', $site);
             print "<input name=\"site\" type=\"radio\" value=\"$site\"  onclick=\"submit()\">$site\n";

        }
    ?>
</form>

<?php
    foreach($_GET as $key=>$value){
        $$key = $value;
        $site_code = $value;
        print "<b>site: $site_code</b>";

        $arr = array('phylum', 'class', 'order', 'family', 'genus', 'species');
        print "<br><select id='setit' name='url'>
        <option value=\"\">Choose Taxonomy level...</option>";

        foreach ($arr as $value){
            print "<option value='analyses//$site_code/$value.html'>$value</option>\n";
        }
        print "<input type='button' value='go' onclick=\"window.open(setit.options[setit.selectedIndex].value)\">";

    }
?>

2 个答案:

答案 0 :(得分:1)

要将信息从第一种形式转移到第二种形式,请使用此

<input type="hidden" name="origin" value="<?php if(isset($_GET['origin'])) echo $_GET['origin']; ?>" />

你可以在&#34之后立即放置它;选择一个网站&#34;,就像这样

<form name='form2' action='./results.php'>
    <b>Select a Site:</b><br>
    <input type="hidden" name="origin" value="<?php if(isset($_GET['origin'])) echo $_GET['origin']; ?>" />

而不是做所有这些来获得$origin

foreach($_GET as $key=>$value){
    $$key = $value;
    $origin = $value;
}

你可以简单地称之为

$origin = $_GET['origin'];

但你必须检查它是否先设置,如下所示:

if(isset($_GET['origin']){
     $origin = $_GET['origin'];

答案 1 :(得分:0)

每次提交表单时,它都会刷新页面,并且您会丢失之前任何请求中的数据。要解决此问题,您需要使用持久存储方法(如会话)来存储和访问先前请求中的数据。

示例:(这将在某个地方的results.php脚本中)

session_start(); // This needs to be at the start of your script

$_SESSION['form1'] = $_POST['form1']; // Put the result of form one in here
// etc...

在包含表单的脚本中,您需要再次调用session_start(),然后才能访问$_SESSION数组中的先前数据。