我正在尝试更改当前的单一选择选项列表,以允许用户选择并返回多个值。
以下是当前代码:
<tr>
<td align="right" class="first_td">
Status:
</td>
<td align="left">
<select multiple name='Status' id='Status'>
<?
$statuslist = $ObjReport->ObjStatus->get_Status_List();
while ($status = mysql_fetch_object($statuslist)) {
if ($status->Status == "Please Select") {
?>
<option value="<?=$status->Status?>" <?=($status->Status == $_REQUEST['Status'] ? "selected=selected" : "") ?>>
<?=$status->Status?></option>
<? } else { ?>
<option value="<?=$status->Status?>" <?=($status->Status ==$_REQUEST['Status']?"selected=selected":"")?>>
<?=$status->Status?></option>
<? } } ?>
</select>
</td>
</tr>
正如你所看到的,我在select之后添加了“multiple”,它改变了页面上的表单,并允许你使用ctrl键突出显示多个值 - 但是在提交时只返回一个值。
所以这里是表单的开始和结束代码以及建议的更改
<td align="center" valign="top">
<? // base64_encode(base64_encode( 'test1'))?>
<br />
<br />
<form id='report_form' action="driverreport_sd.php" method="post" name="report_form">
<!--<div class="criteria_div">-->
<table align="center" class="table_border" cellpadding="5" cellspacing="0" width="80%">
<tr>
<td align="right" class="first_td">
Status:
</td>
<td align="left">
<select multiple name='Status[]' id='Status'>
<? $statuslist=$ObjReport->ObjStatus->get_Status_List(); while($status=mysql_fetch_object($statuslist)) { if($status->Status=="Please Select") { ?>
<option value="<?=$status->Status?>" <?=($status->Status==$_REQUEST['Status']?"selected=selected":"")?>>
<?=$status->Status?></option>
<? } else { ?>
<option value="<?=$status->Status?>" <?=($status->Status==$_REQUEST['Status']?"selected=selected":"")?>>
<?=$status->Status?></option>
<? } } ?>
</select>
</td>
</tr>
<td align="center" colspan="2">
<input type="hidden" id='sort_by' name='sort_by' value="<?=$_REQUEST['sort_by']?>" />
<input type="hidden" name='search_val' id='search_val' value="<?=$_REQUEST['search_val']?>" />
<input type="hidden" name='search_by' id='search_by' value="<?=$_REQUEST['search_by']?>" />
<input type="hidden" name="report_submited" value='report_submited' />
<button type="submit" id="report_submited" name="" value='submit'>Submit</button>
</td>
单击“提交”后,结果将返回到同一页面 这是
的代码
<tr>
<td align="center" colspan="2">
<!--<div id='report_result_div'>
</div>-->
<? if($_REQUEST[ 'report_submited']) { $ReportData=$ObjReport->generate_report($_REQUEST['Status'],$_REQUEST['School'],$_REQUEST['Campaign'],$_REQUEST['State'],$_REQUEST['Stdtype'],$_REQUEST['Primbad'],$_REQUEST['Rep'],$_REQUEST['From_Date'],$_REQUEST['To_Date'],$_REQUEST['sort_by'],$_REQUEST['search_by'],$_REQUEST['search_val']);
$currentTotalRow=mysql_num_rows($ReportData); if($currentTotalRow>0) { ?>
<table align="center" class="table_border" cellpadding="5" cellspacing="0" width="1200px">
<tr>
<td align="center" colspan="19" class="first_td">
<b>Report</b>
</td>
</tr>
<tr>
<td align="center" class="first_td" width="100">
<? if($_REQUEST[ 'sort_by']!="Status" && $_REQUEST[ 'sort_by']!='Status DESC' ) { ?>
<a class="sort" onclick="" id='Status'>
<!--<img src="../images/up.gif" style="top:-5px; left:15px" />
<img src="../images/down.gif" style=" left:-2px; top:5px" /> -->
<u><b>Current Status</b></u>
</a>
<? } else if($_REQUEST[ 'sort_by']!="Status" ) { ?>
<a class="sort" onclick="" id='Status'>
<img src="../images/down.gif" style="top:0px" />
<u><b>Current Status</b></u>
</a>
<? }else if($_REQUEST[ 'sort_by']!='Status DESC' ) { ?>
<a class="sort" onclick="" id='Status DESC'>
<img src="../images/up.gif" style=" top:-5px" />
<u><b>Current Status</b></u>
</a>
<? } ?>
</td>
<td align="center" class="first_td" width="90px">
以这种方式构造它会返回所有值,而不仅仅是所选的一个或两个 选项列表通过php.class文件运行,以从MySQL数据库中提取值 关于我在这里缺少的任何建议谢谢
所以,当我按此运行时
<select multiple name='Status' id='Status'>
它仅从选定的值中返回最后一个值的结果 当我以此身份运行时
<select multiple name='Status[]' id='Status'>
现在返回0结果
根据我的研究,似乎需要将Request更改为其他内容以返回正确的结果
$ReportData=$ObjReport->generate_report($_REQUEST['Status'],$_REQUEST['School'],$_REQUEST['Campaign'],$_REQUEST['State'],$_REQUEST['Stdtype'],$_REQUEST['Primbad'],$_REQUEST['Rep'],$_REQUEST['From_Date'],$_REQUEST['To_Date'],$_REQUEST['sort_by'],$_REQUEST['search_by'],$_REQUEST['search_val']);
非常感谢任何建议,谢谢
您好,这是与POST相关的代码
<table cellpadding="5" cellspacing="0" width="600px">
<tr>
<td align="center" colspan="2">
<input type="hidden" id='sort_by' name='sort_by' value="<?=$_POST['sort_by']?>" />
<input type="hidden" name='search_val' id='search_val' value="<?=$_POST['search_val']?>" />
<input type="hidden" name='search_by' id='search_by' value="<?=$_POST['search_by']?>" />
<input type="hidden" name="report_submited" value='report_submited' />
<button type="submit" id="report_submited" name="" value='submit'>Submit</button>
</td>
</tr>
</table>
<!--</div>-->
</form>
</td>
<td align="left">
<!--<div class="chart_close" id='chart_close'>
<img src="../images/btn_close.png" />
</div>-->
<div class="chart_div" id='pie_chart' style="visibility:visible">
</div>
</td>
</tr>
<tr>
<td align="left">
<? if($_POST[ 'report_submited']) { if($_POST[ 'Status']=="Please Select" ) $_POST[ 'Status']="" ; /*if($_POST[ 'Status']=="ALL" ) $_POST[ 'Status']="" ;*/ if($_POST[ 'School']=="Please Select" ) $_POST[ 'School']="" ; /*if($_POST[ 'School']=="ALL" )
$_POST[ 'School']="" ;*/ if($_POST[ 'Campaign']=="Please Select" ) $_POST[ 'Campaign']="" ; /*if($_POST[ 'Campaign']=="ALL" ) $_POST[ 'Campaign']="" ;*/ if($_POST[ 'State']=="Please Select" ) $_POST[ 'State']="" ; if($_POST[ 'Stdtype']=="Please Select"
) $_POST[ 'Stdtype']="" ; if($_POST[ 'Primbad']=="Please Select" ) $_POST[ 'Primbad']="" ; if($_POST[ 'Rep']=="Please Select" ) $_POST[ 'Rep']="" ; /*if($_POST[ 'State']=="ALL" ) $_POST[ 'State']="" ;*/ if($_POST[ 'From_Date'] && !isset($_POST[
'pageno'])) { $arr_date=explode( "-",$_POST[ 'From_Date']); $_POST[ 'From_Date']=$arr_date[2]. "-".$arr_date[0]. "-".$arr_date[1]; } if($_POST[ 'To_Date'] && !isset($_POST[ 'pageno'])) { $arr_date=explode( "-",$_POST[ 'To_Date']); $_POST[ 'To_Date']=$arr_date[2].
"-".$arr_date[0]. "-".$arr_date[1]; } if(!$_POST[ 'sort_by']) { $_POST[ 'sort_by']="Status" ; } ?>
<br />
<table align="center" class="table_border" cellpadding="5" cellspacing="0" width="600px">
<tr>
<td align="center" class="first_td" colspan="4">
<b>Summary Report</b>
</td>
</tr>
<tr>
<td class="first_td">
<? $TotalFiles=$ObjReport->number_of_total_files($_POST['Status'],$_POST['School'],$_POST['Campaign'],$_POST['State'],$_POST['Stdtype'],$_POST['Primbad'],$_POST['Rep'],$_POST['From_Date'],$_POST['To_Date'],$_POST['sort_by'],$_POST['search_by']); $ReportData=$ObjReport->generate_report_for_csv($_POST['Status'],$_POST['School'],$_POST['Campaign'],$_POST['State'],$_POST['Stdtype'],$_POST['Primbad'],$_POST['Rep'],$_POST['From_Date'],$_POST['To_Date'],$_POST['sort_by'],$_POST['search_by']);
$TotalVisitedFiles=mysql_num_rows($ReportData); ?> Number of Files: <b><?=$TotalFiles?></b>
</td>
<? $ReportData=$ObjReport->generate_report_for_csv($_POST['Status'],$_POST['School'],$_POST['Campaign'],$_POST['State'],$_POST['Stdtype'],$_POST['Primbad'],$_POST['Rep'],$_POST['From_Date'],$_POST['To_Date'],$_POST['sort_by'],$_POST['search_by'],$_POST['search_val'],$_POST['search_val']);
$TotalVisitedFiles=mysql_num_rows($ReportData); $ReportData=$ObjReport->generate_summary_report($_POST['Status'],$_POST['School'],$_POST['Campaign'],$_POST['State'],$_POST['Stdtype'],$_POST['Primbad'],$_POST['Rep'],$_POST['From_Date'],$_POST['To_Date'],$_POST['sort_by'],$_POST['search_by'],$_POST['search_val'],$_POST['search_val']);
$Totalrow=mysql_num_rows($ReportData); if($Totalrow > 0) { ?>
<td class="first_td">
Total
</td>
<td class="first_td">
Total % All Files
</td>
<td class="first_td">
Total % Visited Files
</td>
</tr>
<tr>
<td class="first_td">
File Visited (for Given period):
</td>
<td>
<?=$TotalVisitedFiles;?>
<? //$TotalFiles?>
</td>
<td>
<?=number_format((($TotalVisitedFiles*100)/$TotalFiles),1, '.', '')?>
<? //number_format((($TotalFiles*100)/$TotalVisitedFiles),1, '.', '')?>
</td>
<td>
</td>
</tr>
<? //$status_list=array( 'Bad address', 'Confirmed address', 'Cured', 'Pending Cure', 'Unknown'); $status_detail[ 'Cures']=0; while($data=mysql_fetch_object($ReportData)) { //print_r($data); //echo "<br>"; //if(in_array($data->Status,$status_list)) { if($data->Status=='Cured' || $data->Status=='Pending Cure') { $status_detail['Cures']+=$data->Status_count; } else { $status_detail[$data->Status]=$data->Status_count; } } } ksort($status_detail); foreach($status_detail as
$key => $value) { if($value!=0) { ?>
<tr>
<td class="first_td">
<? echo $key; ?>
<? ?>
</td>
<td>
<? echo $value?>
</td>
<td>
<? echo number_format((($value*100)/$TotalFiles),1)?>
<? //echo number_format((($value*100)/$TotalVisitedFiles),1);?>
</td>
<td>
<? echo number_format((($value*100)/$TotalVisitedFiles),1);?>
<? //echo number_format((($value*100)/$TotalFiles),1);?>
</td>
</tr>
<? } } // } //} } ?>
</table>
<br />
<br />
<? } ?>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<!--<div id='report_result_div'>
</div>-->
<? if($_POST[ 'report_submited']) { $ReportData=$ObjReport->generate_report($_POST['Status'],$_POST['School'],$_POST['Campaign'],$_POST['State'],$_POST['Stdtype'],$_POST['Primbad'],$_POST['Rep'],$_POST['From_Date'],$_POST['To_Date'],$_POST['sort_by'],$_POST['search_by'],$_POST['search_val']); $currentTotalRow=mysql_num_rows($ReportData);
if($currentTotalRow>0) { ?>
<br />
<!--<table class="table_border" cellpadding="5" cellspacing="0" width="2000px">
<tr>
<td width="270px;" align="right">
Seacrh by:
<select name="search_by_option" id='search_by_option'>
<option value="c.cf_644" selected="selected">Student ID</option>
<option value="c.social_security" <?=("c.social_security"==$_POST['search_by']? "selected=selected" : "")?>>Social Security Number</option>
</select>
</td>
<td align="left">
<input type="text" name='search_value' id='search_value' value="<?=$_POST['search_val']?>" />
<button id='search'>Search</button>
</td>
</tr>
</table>-->
<table align="center" class="table_border" cellpadding="5" cellspacing="0" width="1200px">
<tr>
<td align="center" colspan="19" class="first_td">
<b>Report</b>
</td>
</tr>
<tr>
<td align="center" class="first_td" width="100">
<? if($_POST[ 'sort_by']!="Status" && $_POST[ 'sort_by']!='Status DESC' ) { ?>
<a class="sort" onclick="" id='Status'>
<!--<img src="../images/up.gif" style="top:-5px; left:15px" />
<img src="../images/down.gif" style=" left:-2px; top:5px" /> -->
<u><b>Current Status</b></u>
</a>
<? } else if($_POST[ 'sort_by']!="Status" ) { ?>
<a class="sort" onclick="" id='Status'>
<img src="../images/down.gif" style="top:0px" />
<u><b>Current Status</b></u>
</a>
<? }else if($_POST[ 'sort_by']!='Status DESC' ) { ?>
<a class="sort" onclick="" id='Status DESC'>
<img src="../images/up.gif" style=" top:-5px" />
<u><b>Current Status</b></u>
</a>
<? } ?>
</td>
<td align="center" class="first_td" width="90px">
<? if($_POST[ 'sort_by']!="Status_Date" && $_POST[ 'sort_by']!='Status_Date DESC' ) { ?>
<a class="sort" onclick="" id='Status_Date'>
<!--<img src="../images/up.gif" style="top:-5px; left:15px" />
<img src="../images/down.gif" style=" left:-2px; top:5px" /> -->
<u><b>Status Date</b></u>
</a>
<? } else if($_POST[ 'sort_by']!="Status_Date" ) { ?>
<a class="sort" onclick="" id='Status_Date'>
<img src="../images/down.gif" style="top:0px" />
<u><b>Status Date</b></u>
</a>
<? }else if($_POST[ 'sort_by']!='Status_Date DESC' ) { ?>
<a class="sort" onclick="" id='Status_Date DESC'>
<img src="../images/up.gif" style="top:-5px" />
<u><b>Status Date</b></u>
</a>
<? } ?>
</td>
<td align="center" class="first_td"><b>Campaign</b>
</td>
<td align="center" class="first_td" width="80">
<b>Student ID</b>
</td>
<td align="center" class="first_td" width="100px">
<? if($_POST[ 'sort_by']!="Stdtype" && $_POST[ 'sort_by']!='Stdtype DESC' ) { ?>
<a class="sort" onclick="" id='Stdtype'>
<!--<img src="../images/up.gif" style="top:-5px; left:15px" />
<img src="../images/down.gif" style=" left:-2px; top:5px" /> -->
<u><b>Student Type</b></u>
</a>
<? } else if($_POST[ 'sort_by']!="Stdtype" ) { ?>
<a class="sort" onclick="" id='Stdtype'>
<img src="../images/down.gif" style="top:0px" />
<u><b>Student Type</b></u>
</a>
<? }else if($_POST[ 'sort_by']!='Stdtype DESC' ) { ?>
<a class="sort" onclick="" id='Stdtype DESC'>
<img src="../images/up.gif" style="top:-5px" />
<u><b>Student Type</b></u>
</a>
<? } ?>
</td>
<td align="center" class="first_td"><b>Rep</b>
</td>
<td align="center" class="first_td"><b>First Name</b>
</td>
<td align="center" class="first_td"><b>Last Name</b>
</td>
<td align="center" class="first_td"><b>Home Phone</b>
</td>
<td align="center" class="first_td"><b>Mobile</b>
</td>
<td align="center" class="first_td"><b>Work Phone</b>
</td>
<td align="center" class="first_td"><b>Other Phone</b>
</td>
<!--<td align="center" class="first_td"><b>Street</b></td>
<td align="center" class="first_td"><b>City</b></td>
<td align="center" class="first_td"><b>State</b></td>
<td align="center" class="first_td"><b>Postal Code</b></td>
<td align="center" class="first_td"><b>Social Security Number</b></td>
<td align="center" class="first_td" width="150px"><b>School</b></td>
<td align="center" class="first_td" width="150px"><b>CS Program</b></td>-->
<!--<td align="center" class="first_td">
<?
if($_POST['sort_by']!="Visit_Date" && $_POST['sort_by']!='Visit_Date DESC')
{
?>
<a class="sort" onclick="" id='Visit_Date'>
<img src="../images/up.gif" style="top:-5px" />
<img src="../images/down.gif" style=" left:-17px; top:5px" />
<b>Visiting Date</b>
</a>
<?
}
else if($_POST['sort_by']!="Visit_Date")
{
?>
<a class="sort" onclick="" id='Visit_Date'>
<img src="../images/down.gif" style="top:0px" />
<b>Visiting Date</b>
</a>
<?
}else if($_POST['sort_by']!='Visit_Date DESC')
{
?>
<a class="sort" onclick="" id='Visit_Date DESC'>
<img src="../images/up.gif" style="top:-5px" />
<b>Visiting Date</b>
</a>
<?
}
?>
</td>-->
<td align="center" class="first_td" width="200px"><b>Last Visit Note</b>
</td>
</tr>
<? while($data=mysql_fetch_object($ReportData)) { ?>
<tr>
<td>
<?=$data->Status?>
</td>
<td align="center">
<? if(trim($data->Status_Date)) echo date('m-d-Y',strtotime($data->Status_Date)); ?>
</td>
<td>
<?=$data->Campaign?> </td>
<td>
<?=$data->Student_ID?>
</td>
<td>
<?=$data->Stdtype?> </td>
<td>
<?=$data->Rep?> </td>
<td>
<?=$data->First_Name?> </td>
<td>
<?=$data->Last_Name?> </td>
<td>
<?=$data->Home_Phone?> </td>
<td>
<?=$data->Mobile?> </td>
<td>
<?=$data->Work_Phone?> </td>
<td>
<?=$data->Other_Phone?> </td>
<!--<td><?=$data->Street?> </td>
<td><?=$data->City?> </td>
<td><?=$data->State?> </td>
<td><?=$data->Postal_Code?> </td>
<td><?=$data->SSN?> </td>
<td><?=$data->School?> </td>
<td><?=$data->CS_Program?> </td>-->
<!--<td align="center"><?
if(trim($data->Visit_Date)!="")
{
echo date('m-d-Y',strtotime($data->Visit_Date));
}
?> </td>-->
<td>
<? $visit_info_history=explode( "\n",$data->visit_info); echo $visit_info_history[count($visit_info_history)-1]; //echo nl2br($data->visit_info); ?>
</td>
</tr>
<? } ?>
</table>
<table cellpadding="" cellspacing="0" width="600px">
<tr>
<td>
<?=$ObjReport->strPagination?>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2">
<? $ReportData=$ObjReport->generate_report_for_csv($_POST['Status'],$_POST['School'],$_POST['Campaign'],$_POST['State'],$_POST['Stdtype'],$_POST['Primbad'],$_POST['Rep'],$_POST['From_Date'],$_POST['To_Date']); $currentTotalRow=mysql_num_rows($ReportData); if($currentTotalRow>0)
{ while($data=mysql_fetch_object($ReportData)) { $chart_data[$data->Status]++; } ?>
<!-- google pie chart library -->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {
packages: ["corechart"]
});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['', ''], <? $data_to_chart = "";
foreach($chart_data as $key => $value) {
$data_to_chart. = "['".$key.
"', ".$value.
"],";
}
echo trim($data_to_chart, ","); ?>
]);
var options = {
title: 'Pie Chart for Status',
is3D: true
};
var chart = new google.visualization.PieChart(document.getElementById('pie_chart'));
chart.draw(data, options);
}
/* *********************** */
</script>
<!--<div class="chart_close" id='chart_close'>
<img src="../images/btn_close.png" />
</div>
<div class="chart_div" id='pie_chart'>
</div>-->
<? } //print_r($chart_data); ?>
</td>
</tr>
<? } else { ?>
<tr>
<td colspan="2">
<table align="center" class="table_border" cellpadding="5" cellspacing="0" width="600px">
<tr>
<td align="center" class="first_td">
Report
</td>
</tr>
<tr>
<td align="center">
No data found.
</td>
</tr>
</table>
</td>
</tr>
<? } } ?>
</table>
<? } else { if(isset($_SESSION[ 'Login_Person'])) header( "location: ./search_student.php"); else header( "location: ../"); } ?>
</body>
</html>
答案 0 :(得分:0)
你需要通过这样做来创建一个数组:
<select multiple name='Status[]' id='Status'>
注意添加的[]
例如这个简单的演示:
<form method=post action=''>
<select multiple name=select[]>
<option value='1'>one</option>
<option value='2'>two</option>
<option value='3'>three</option>
<option value='4'>four</option>
<option value='5'>five</option>
</select>
<input type=submit name=submit />
</form>
<pre>
<?php
if(isset($_POST['submit'])){
var_dump($_POST);
}
选择&#34; one&#34; 会返回这样的内容。和&#34;两个&#34;:
array(2) {
["select"]=>
array(2) {
[0]=>
string(1) "1"
[1]=>
string(1) "2"
}
["submit"]=>
string(12) "Submit Query"
}