Php 选择标记以设置会话变量

Php 选择标记以设置会话变量,php,html,html-select,Php,Html,Html Select,我有一个用html编写的网页,它以列表的形式显示查询结果。每条记录都包含一个链接,按下该链接可打开该记录的pdf报告 我希望能够允许用户选择可能包含的内容,并在页面顶部使用标记,使他们能够做出选择(在示例“在报告中包含评论”) 是否可以设置会话变量,以便每次选择时,会话变量都会获取所选内容的值,从而使我能够知道创建pdf文档时需要包括哪些内容 如果没有,有什么方法可以实现我想要实现的目标吗 这是用于创建下载链接的代码的编辑版本: Include comments in report <b

我有一个用html编写的网页,它以列表的形式显示查询结果。每条记录都包含一个链接,按下该链接可打开该记录的pdf报告

我希望能够允许用户选择可能包含的内容,并在页面顶部使用
标记,使他们能够做出选择(在示例“在报告中包含评论”)

是否可以设置
会话变量
,以便每次选择
时,会话变量都会获取所选内容的值,从而使我能够知道创建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
}
?>
在报告中包含注释

对 不
如果使用PHP重定向到新页面,只需在PHP文件中使用
$\u POST['selectedReport']

$selectedReport = $_POST['selectedReport'];
您的选择应如下所示:

<select name="selectedReport">
   <option value="1">Report1</option>
   <option value="2">Report2</option>
   <option value="3">Report3</option>
</select>
<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>
<select id="selectedReport" onchange="takeValue()">
   <option value="1">Report1</option>
   <option value="2">Report2</option>
   <option value="3">Report3</option>
</select>
您的选择应如下所示:

<select name="selectedReport">
   <option value="1">Report1</option>
   <option value="2">Report2</option>
   <option value="3">Report3</option>
</select>
<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>
<select id="selectedReport" onchange="takeValue()">
   <option value="1">Report1</option>
   <option value="2">Report2</option>
   <option value="3">Report3</option>
</select>
并使用select的onchange事件应用它,如下所示:

<select name="selectedReport">
   <option value="1">Report1</option>
   <option value="2">Report2</option>
   <option value="3">Report3</option>
</select>
<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>
<select id="selectedReport" onchange="takeValue()">
   <option value="1">Report1</option>
   <option value="2">Report2</option>
   <option value="3">Report3</option>
</select>

报告1
报告2
报告3

该值将与表单一起提交。

我找到了一个非常好的解决方案,因此我想与大家分享:

HTML-选择select时,脚本向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>

函数takeValue()
{
var sel=document.getElementById(“selectedReport”);
var selectedReport=sel.options[sel.selectedIndex].text;
var-xmlhttp;
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
}
URL字符串=”https://website/setSessionVariable.php?choiceSelected=“+选定的报告;
open(“GET”,urlString,true);
xmlhttp.send();
}
选择标记-选择选项后,将调用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];   
}

当然可以,但你的问题太宽泛了。我们甚至不知道你在做什么。试一试,再问一些更具体的问题。我不确定我是否理解你的意思。这是一个html页面——我使用了一点php来获得查询结果,但所有其他内容都是html。这是有意义的,我感谢您的帮助,但问题是select在文章之外。选择是页面顶部的单个对象。接下来是php行的一系列链接。如何获取此帖子中的selectedReport?编辑问题中的代码演示OK,您可以在表单中使用隐藏的输入,并为其提供所选报告的值,查看我的编辑。这太棒了!!非常感谢你。像做梦一样工作。太好了,很高兴它有帮助!我又看了一遍,意识到这是可行的,但只适用于记录列表中的第一张记录。知道为什么吗?