我是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)\">";
}
?>
答案 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
数组中的先前数据。