2013-07-28 45 views
1

我目前所做的是,我使用AJAX在搜索結果的id中顯示搜索記錄的所有列,然後給出打印選項以打印這些記錄。現在我希望能夠選擇一組列(爲此,我提供了一個複選框的所有列),並只打印選定的列。我可以在php文件中獲取選定的列,但是如何從這些選定的列值中構建查詢。我的意思是可以有很多不同的組合。碼到現在爲止..基於選定字段的報告生成

   <?php 




       echo ' <table border="1"> 
         <tr> 
         <td class="lab searchtableheader" style="color:#cd0000; padding:5px;"><input type="checkbox" name="print" value="facultyname" /><br>FACULTY</td> 
         <td class="lab searchtableheader" style="color:#de0000; padding:5px;"><input type="checkbox" name="print" value="departmentname" /><br>DEPT.</td> 
         <td class="lab searchtableheader" style="color:#ef0000; padding:5px;"><input type="checkbox" name="print" value="coursename" /><br>COURSE</td> 
         <td class="lab searchtableheader" style="color:#ff0000; padding:5px;"><input type="checkbox" name="print" value="year" /><br>YEAR </td> 
         <td class="lab searchtableheader" style="color:#f50853; padding:5px;"><input type="checkbox" name="print" value="semester" /><br>SEM. </td> 
         <td class="lab searchtableheader" style="color:#f5087e; padding:5px;"><input type="checkbox" name="print" value="studentname" /><br>NAME </td> 
         <td class="lab searchtableheader" style="color:#f508dd; padding:5px;"><input type="checkbox" name="print" value="enrollment" /><br>ENROLL. </td> 
         <td class="lab searchtableheader" style="color:#c108f5; padding:5px;"><input type="checkbox" name="print" value="courseseatcategory" /><br>SEAT CATEGORY</td> 
         <td class="lab searchtableheader" style="color:#7e08f5; padding:5px;"><input type="checkbox" name="print" value="gender" /><br>GENDER </td> 
         <td class="lab searchtableheader" style="color:#3f08f5; padding:5px;"><input type="checkbox" name="print" value="dob" /><br>D.O.B</td> 
         <td class="lab searchtableheader" style="color:#2f95f4; padding:5px;"><input type="checkbox" name="print" value="religion" /><br>RELIGION </td> 
         <td class="lab searchtableheader" style="color:#9f4ef0; padding:5px;"><input type="checkbox" name="print" value="category" /><br>CATEGORY </td> 
         <td class="lab searchtableheader" style="color:#ee4ef0; padding:5px;"><input type="checkbox" name="print" value="country" /><br>COUNTRY </td> 
         <td class="lab searchtableheader" style="color:#f70767; padding:5px;"><input type="checkbox" name="print" value="state" /><br>STATE </td> 
         <td class="lab searchtableheader" style="color:#ef4ef0; padding:5px;"><input type="checkbox" name="print" value="internal" /><br>INTERNAL </td> 
         <td class="lab searchtableheader" style="color:#2e95f3; padding:5px;"><input type="checkbox" name="print" value="ph" /><br>PH </td> 
         <td class="lab searchtableheader" style="color:#7e08f1; padding:5px;"><input type="checkbox" name="print" value="dor" /><br>D.O.R </td> 
         <td class="lab searchtableheader" style="color:#f508aa; padding:5px;"><input type="checkbox" name="print" value="supervisior" /><br>SUPERVISOR </td> 
         <td class="lab searchtableheader" style="color:#ff0000; padding:5px;"><input type="checkbox" name="print" value="cosupervisor" /><br>COSUPERVISOR </td> 
         <td class="lab searchtableheader" style="color:#9f4ef0; padding:5px;"><input type="checkbox" name="print" value="titleofthesis" /><br>TITLE of THESIS</td> 
         <td class="lab searchtableheader" style="color:#2f95f4; padding:5px;"><input type="checkbox" name="print" value="mou" /><br>MOU </td> 
         <td class="lab searchtableheader" style="color:#7e08f5; padding:5px;"><input type="checkbox" name="print" value="mouinstitute" /><br>MOU INSTITUTE </td> 

         </tr>  ';?> 

JavaScript來打印:

function printDiv() 
{ 
    var divToPrint=document.getElementById('searchresults'); 
    newWin= window.open(""); 
    newWin.document.write(divToPrint.outerHTML); 
    newWin.print(); 
    newWin.close(); 
} 
+0

我想到得到從數據庫中選擇的列和查詢只有那些列,然後使用新的頁面寫入結果printDiv –

+0

但無法將查詢寫出選定列的所有可能組合。:/ –

回答

1

首先您需要更改名稱= 「打印」 NAME = 「打印[]」 這樣的PHP可以拿起所有的選定的值。

無論您是使用帖子還是獲取提交信息,您都需要循環發送值。信息將在打印陣列中。

$prn = $_POST['print']; 
$sql = "SELECT "; 
$flds = ""; 
foreach($prn as $p) { 
    if($flds != "") $flds .= ","; 
    $flds .= $p 
} 
$sql .= $flds . " FROM .... 

請不代碼是未經測試,但它應該給你一個起點

+0

Thnx jeff..that正是我所尋找的,我無法正確地構造這個foreach循環。讓我們來看看它現在是否正常工作.. 順便說一句,謝謝.. :) –

+0

我想我們必須檢查這個字段是否使用isset()在這裏被選中。 –