我有一個PHP表單,它從數據庫中提取數據,將其打印出來,然後允許用戶檢查他們需要的項目。在保存時,只有最後一個選項被髮送到$ _POST。這裏是我的代碼:
global $dbc;
$afQuery = "SELECT fid, facility_name, city, state, country, phone from facilities
WHERE uid = '123'
AND fid != '456'
GROUP BY fid;";
$afResult = $dbc->query($afQuery,__FILE__,__LINE__);
$i = 0;
while ($affiliated = $dbc->fetch($afResult)) {
++$i;
echo '<div class="action" style="float:left;">';
echo '<input type="checkbox" name="affiliated[afid]" id="afid" value="'.$affiliated->fid.'">';
echo '</div>';
echo '<div class="facility-name">';
echo '<input type="hidden" id="facility-name '.$i.'" name="affiliated[facility_name]" value="'.$affiliated->facility_name.'" />';
echo $affiliated->facility_name;
echo '</div>';
echo '<div class="facility-location">';
echo '<input type="hidden" id="facility-location '.$i.'" name="affiliated[facility_location]" value="'.$affiliates->city. ', ' . $affiliated->state . ' ' . $affiliated->country.'" />';
echo $affiliated->city. ', ' . $affiliated->state . ' ' . $affiliated->country;
echo '</div>';
echo '<div class="facility-phone">';
echo '<input type="hidden" id="facility-phone '.$i.'" name="affiliated[facility_phone]" value="'.$affiliated->phone.'" />';
echo $affiliated->phone;
echo '</div>';
echo '<div class="clear"></div>';
echo '<input type="hidden" id="update" name="update" value="' . $affiliated->fid . '" />';
}
$dbc->fetch
相當於mysql_fetch_assoc
。
我試圖將這些值保存到$affiliated
數組,但它應該有每個選定項目的子數組,因此我可以將每個值存儲在數據庫中的一個單獨的行上。我在哪裏錯過了?我在while循環中嘗試了一個foreach,但是我沒有得到任何答案。
感謝您的幫助!
* UPDATE *
我跟隨@青松的建議,並加入$i
像這樣:
<input type="checkbox" name="affiliated[afid]['.$i.']" id="afid" value="'.$affiliated->fid.'">
不過,現在我收到以下輸出:
Array
(
[afid] => Array
(
[1] => 5289
[2] => 5290
[3] => 5291
[4] => 5292
)
[facility_name] => Array
(
[1] => Test Company
[2] => Test Company 2
[3] => Test Company 3
[4] => Test Company 4
)
[facility_location] => Array
(
[1] => Address, State US
[2] => Address, State US
[3] => Address, State US
[4] => Address, State US
)
[facility_phone] => Array
(
[1] => 555-555-5555
[2] => 555-555-5555
[3] => 555-555-5555
[4] => 555-555-555
)
)
我需要這個看起來像這樣,所以我可以插入每個補全te排入數據庫表中:
Array
(
[0] => Array
(
[afid] => 5289
[facility_name] => Test Company
[facility_location] => Address, ST USA
[facility_phone] => 555-555-5555
)
[1] => Array
(
[afid] => 5290
[facility_name] => Test Company 1
[facility_location] => Address, ST USA
[facility_phone] => 555-555-5555
)
)
建議?
Oi,我建議您在回顯HTML大塊時考慮'heredoc'語法: http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc – Madbreaks 2012-08-14 21:25:56
有趣 - 感謝您的鏈接! – deewilcox 2012-08-15 19:00:03
我認爲你應該接受Pinetree的答案,然後問一個關於如何創建一個數組的單獨問題 - 他很清楚地解決了你最初的問題。 – Madbreaks 2012-08-15 22:32:03