2012-11-19 27 views
0

我的問題比標題更廣泛,但我會盡力解釋我在做什麼。使用複選框將表中隱藏列的值傳遞到新頁面

確定,開始讓我假裝已經走兩個表:

表名:主機

+------------+---------+ 
| host  | hostid | 
+------------+---------+ 
| EXAMPLE 1 | 10010 | 
| EXAMPLE 2 | 10011 | 
| EXAMPLE 3 | 10012 | 
| EXAMPLE 4 | 10013 | 
+------------+---------+ 

表名:項目

+---------+--------------+---------+---------+ 
| itemid | itemname  | value | hostid | 
+---------+--------------+---------+---------+ 
| 27037 | examplename1 | DATA 1 | 10010 | 
| 27038 | examplename2 | DATA 2 | 10011 | 
| 27039 | examplename3 | DATA 3 | 10012 | 
| 27040 | examplename4 | DATA 4 | 10013 | 
| 27041 | examplename5 | DATA 5 | 10013 | 
| 27042 | examplename6 | DATA 6 | 10013 | 
| 27043 | examplename7 | DATA 7 | 10013 | 
+---------+--------------+---------+---------+ 

現在我把這些到網頁使用以下代碼:

<?php 
$host = 'This is entered by user previously' 

$sql = "SELECT hosts.host, items.itemname, items.value 
    FROM items 
    LEFT JOIN hosts ON hosts.hostid = items.hostid 
    WHERE hosts.host LIKE '$host'"; 

$Connect = @mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) 
    or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . mysql_errno()); 

$Db = @mysql_select_db(DB_DATABASE, $Connect) 
    or die("Couldn't select database:<br>" . mysql_error(). "<br>" . mysql_errno()); 

$result = @mysql_query($sql,$Connect) 
    or die("Couldn't execute query:<br>" . mysql_error(). "<br>" . mysql_errno()); 

mysql_select_db(DB_DATABASE); 


$num_rows = mysql_num_rows($result); 
print "<table width=1000px border=1>\n"; 

$cols = 0; 
while ($get_info = mysql_fetch_assoc($result)){ 
if($cols == 0) 
{ 
    $cols = 1; 
    print "<tr>"; 
    print "<th>Host</th>"; 
    print "<th>Item Name</th>"; 
    print "<th>Item Value</th>"; 
    print "<tr>\n"; 
} 
print "<tr>\n"; 
foreach ($get_info as $field) 
print "\t<td><font face=arial size=3/>$field</font></td>\n"; 
print "</tr>\n"; 
} 
print "</table>\n"; 
?> 

如果用戶已經進入了「例4」,這將是結果表:

+------------+--------------+------------+ 
| Host  | Item Name | Item Value | 
+------------+--------------+------------+ 
| EXAMPLE 4 | examplename4 | DATA 4  | 
| EXAMPLE 4 | examplename5 | DATA 5  | 
| EXAMPLE 4 | examplename6 | DATA 6  | 
| EXAMPLE 4 | examplename7 | DATA 7  | 
+------------+--------------+------------+ 

我現在需要調整這使得所得到的表將與複選框旁邊的每一行顯示。我需要這些複選框來對應每一行的'itemid'(它不會顯示在表格中),這樣當進入下一頁時,我可以設置它們的變量。例如,如果我在下一頁勾選了「數據4」和「數據7」,它們將成爲數值爲'27040'和'27043'的數組的一部分。

道歉,如果這措辭不好,但我有麻煩包裝我的頭周圍的過程。

+0

如果您沒有提交按鈕,請使用AJAX。 –

+0

你只是問如何創建複選框?如果是這樣,真的只需要將itemid列添加到SELECT查詢中,並將其放入複選框的value屬性中... – Wige

+0

而不是foreach語句,它們自己回顯每個行字段,而不是循環遍歷它們,因爲第四個字段(複選框)與其他字段不同。或者如果你真的想減少代碼,循環foreach直到第三個字段然後停止。然後使用自己回顯第四個元素。 –

回答

0

有很多方法可以做到這一點。

一個簡單的方法是在命名複選框時使用項目ID,這樣您可以在觸發相應事件提交信息時獲得複選框本身的所需值。

另一個將被隱藏在一類似的方式,相應的複選框命名輸入(即複選框ID =「C_1」,隱藏的輸入ID =「H_1」,其中該隱藏的輸入具有值=「ITEM_ID」)

相關問題