从单个选择选项列表PHP返回多个值

时间:2014-12-06 16:25:24

标签: php html mysql

我正在尝试更改当前的单一选择选项列表,以允许用户选择并返回多个值。

以下是当前代码:

<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" />&nbsp;
															<img src="../images/down.gif" style=" left:-2px; top:5px" />&nbsp;-->
            <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: &nbsp;<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>&nbsp;

        </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" />&nbsp;
															<img src="../images/down.gif" style=" left:-2px; top:5px" />&nbsp;-->
            <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" />&nbsp;
															<img src="../images/down.gif" style=" left:-2px; top:5px" />&nbsp;-->
            <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" />&nbsp;

            <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" />&nbsp;
            <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" />&nbsp;
															<img src="../images/down.gif" style=" left:-2px; top:5px" />&nbsp;-->
            <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" />&nbsp;
            <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" />&nbsp;
            <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" />&nbsp;
															<img src="../images/down.gif" style=" left:-17px; top:5px" />&nbsp;
															<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" />&nbsp;
															
															<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" />&nbsp;
															<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?>&nbsp;
        </td>
        <td align="center">
          <? if(trim($data->Status_Date)) echo date('m-d-Y',strtotime($data->Status_Date)); ?>&nbsp;

        </td>
        <td>
          <?=$data->Campaign?>&nbsp;</td>
        <td>
          <?=$data->Student_ID?>&nbsp;
        </td>
        <td>
          <?=$data->Stdtype?>&nbsp;</td>
        <td>
          <?=$data->Rep?>&nbsp;</td>
        <td>
          <?=$data->First_Name?>&nbsp;</td>
        <td>
          <?=$data->Last_Name?>&nbsp;</td>
        <td>
          <?=$data->Home_Phone?>&nbsp;</td>
        <td>
          <?=$data->Mobile?>&nbsp;</td>
        <td>
          <?=$data->Work_Phone?>&nbsp;</td>
        <td>
          <?=$data->Other_Phone?>&nbsp;</td>
        <!--<td><?=$data->Street?>&nbsp;</td>
											
											
											<td><?=$data->City?>&nbsp;</td>
											<td><?=$data->State?>&nbsp;</td>											
											<td><?=$data->Postal_Code?>&nbsp;</td>
											<td><?=$data->SSN?>&nbsp;</td>
											<td><?=$data->School?>&nbsp;</td>
											<td><?=$data->CS_Program?>&nbsp;</td>-->
        <!--<td align="center"><? 
													if(trim($data->Visit_Date)!="")
													{
														echo date('m-d-Y',strtotime($data->Visit_Date));
													}
												?>&nbsp;</td>-->
        <td>
          <? $visit_info_history=explode( "\n",$data->visit_info); echo $visit_info_history[count($visit_info_history)-1]; //echo nl2br($data->visit_info); ?>&nbsp;
        </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>

1 个答案:

答案 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"
}