我有一个用html编写的网页,它以列表的形式显示查询结果。每条记录都包含一个链接,按下此链接可打开该记录的pdf报告。
我希望能够让用户选择可能包含的内容,并在页面顶部使用<select>
标记,以便他们做出选择(在示例中&# 34;在报告中加入评论&#34;)
是否可以设置session variable
,以便每次选择<select>
时,会话变量都会获取选择的值,这样我就可以知道什么时候需要包含pdf文档是否已创建?
如果没有,有没有办法实现我想要实现的目标?
这是用于创建下载链接的代码的编辑版本:
Include comments in report
<br>
<select value="selectedReport">
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
<?php
while($row = mysql_fetch_array($result))
{
?>
<tr>
<td>
<form name="createPdf" action="https://...createpdf.php" method="Post" target="_blank">
<input name="pdfID" size="0" type="submit" value="<?php echo $row['pdfID'] ?>" class="pdfButton">
</form>
</td>
</tr>
<?php
}
?>
答案 0 :(得分:1)
如果您使用 PHP 重定向到新的页面,则只需在php文件中使用 $_POST['selectedReport']
:
$selectedReport = $_POST['selectedReport'];
你的选择应该是这样的:
<select name="selectedReport">
<option value="1">Report1</option>
<option value="2">Report2</option>
<option value="3">Report3</option>
</select>
如果您在同一页面,则可以使用 Javascript 执行此操作:
var sel = document.getElementById("selectedReport");
//to get the value of the selected option
var selectedReport = sel.options[sel.selectedIndex].value;
//to get the text of the selected option
var selectedReport = sel.options[sel.selectedIndex].text;
你的选择应该是这样的:
<select id="selectedReport">
<option value="1">Report1</option>
<option value="2">Report2</option>
<option value="3">Report3</option>
</select>
修改强>
回复您的评论:您可以在表单中使用隐藏的输入,如下所示:
<form action="..." method="POST">
<input type="hidden" id="myReport" value=""/>
//... and the content of your form goes here
</form>
并使用以下javascript函数将所选选项放入隐藏的输入值,以便您可以使用表单提交:
function takeValue(){
var sel = document.getElementById("selectedReport");
var selectedReport = sel.options[sel.selectedIndex].text;
//put the selected value in the hidden input value
document.getElementById("myReport").value=selectedReport;
}
然后使用您选择的 onchange 事件来应用它:
<select id="selectedReport" onchange="takeValue()">
<option value="1">Report1</option>
<option value="2">Report2</option>
<option value="3">Report3</option>
</select>
价值将与表格一起提交。
答案 1 :(得分:1)
我找到了一个非常好的解决方案,所以我想分享它:
HTML - 当选择的选择
时,脚本会向setSessionVariable.php发送请求<script language="JavaScript" type="text/javascript">
function takeValue()
{
var sel = document.getElementById("selectedReport");
var selectedReport = sel.options[sel.selectedIndex].text;
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
}
urlString="https://website/setSessionVariable.php?choiceSelected=" + selectedReport;
xmlhttp.open("GET",urlString,true);
xmlhttp.send();
}
</script>
select标签 - 选择when选项后,将调用takeValue函数。
<select id="selectedReport" onchange="takeValue()">
<option value="Yes" Selected>Yes</option>
<option value="No" >No</option>
</select>
setSessionVariable.php - 在选择select时在后台运行,并设置会话变量$ selected。
<?php
session_start();
if (isset($_GET[choiceSelected]))
{
$_SESSION['$selected']=$_GET[choiceSelected];
}
&GT;