2011-07-07 49 views
1

非常感謝您的幫助!如何使用PHP,JS和HTML來正確處理多對多的關係?

我有一個龐大而複雜的形式,有很多我一直在努力應對的多對多關係。在鼓勵之後,我爲每個關係創建了兩個適當的表格(例如,一個表格汽車填充了carID和carName's,並且交叉表格userCars存儲了用戶ID和carID),無論大小。

我的問題是:我的表單HTML應該總是由基於這些表的PHP生成的?例如,我是否應該使用PHP檢查汽車表,併爲表中的每一行生成一個複選框,儘管我只會從五個開始?除了調用一個PHP函數onLoad並讓該函數調用一個javaScript函數之外,還有更好的方法嗎?

此外,用戶提交表單後,如何存儲這些值?我是否需要經過每一個POST變量名和表中,以獲得與該名稱相關聯的carID加以比較carName 汽車,然後讓在userCars表中的條目?或者我應該說「如果沃爾沃,carID = 4」,因爲我現在只有五輛車

再次感謝您的所有建議!如果沒有你的慷慨,我會被完全卡住!

+0

我寧願使用一些PHP框架,處理這種類型的數據關係更容易... –

回答

0

你應該讓你的數據庫值產生你的HTML,或者你應該做一些JavaScript從數據庫中獲取的值,並設置基於這些值的頁面的價值。其次,如果將表單元素的ID設置爲數據庫中關聯條目的ID,則應該只能從POST中包含的一組ID中更新數據庫。

1

我與馬立克同意,只要PHP應用程序變成一個litlle有點複雜,你是一個框架更好。最好有一個像提供多對多ORM的yii。

這就是說很多編程人員很早就犯的一個錯誤是讓表單太複雜。

問自己一個很好的問題就是這種形式是否試圖做太多。沒有看到與實際表格的鏈接,很難做出判斷。

解決這個問題的一種方法是使用javascript(jquery:ajax)在用戶選擇汽車時更新連接表,以便在提交表單時只更新主表的值。

所以形式可能看起來像

您的姓名_ _

你的年齡_ _

自己喜歡的顏色__

車,你已經擁有

沃爾沃_福特_菲亞特_奔馳_ {...這些值可以從選項表中動態創建...} {使用jQuery選擇/未選擇的每個值發出一個ajax更新你user_cars表}

當提交的表單只在用戶表更新

但是你也可以通過$ _ POST [值環'cars'] []在這裏更新user_cars表。這可能是更好的解決方案。

相關問題