2015-08-18 25 views
2

我希望這不是一個愚蠢的問題,我一直在拖網解決​​方案,並一直無法工作了這一點..斯威夫特創建JSON陣列更新MySQL數據庫

在我的主視圖控制器我使用PHP和JSON從MySQL數據庫獲取數據。然後用戶通過單擊自定義單元格中的自定義按鈕從表格視圖中選擇相關項目。我在哪裏可以在此基礎上添加/刪除列表中的按鈕點擊/未點擊的點...

private var selectedItems = [Int: String]() 

    func cellButtonTapped(cell: CustomCell) { 

    let indexPath = self.tableView.indexPathForRowAtPoint(cell.center)! 
    let selectedItem = postsCollection[indexPath.row] 
    let item = selectedItem.product 
    let id = selectedItem.Id 

    let idItem : [Int:String] = [id:"\(item)"] 

     if selectedItems[id] == nil { 
      // now val is not nil and the Optional has been unwrapped, so use it 
      selectedItems[id] = "\(item)" //item 
     } else { 
      selectedItems[id] = nil 
     } 

    println("\(selectedItems)") 

    } 

如果我選擇它會顯示這樣的列表上的項目,因爲我選擇的項目。當我取消選擇它們時,從列表中刪除該get。

[6:Mybulen,7:Ecotrin XL,5:阿斯辛伐他汀,8:洛瑞恩]

我想創建一個JSON陣列和POST數組我有PHP文件更新數據庫..得到的JSON數組應該是這個樣子......

[{"Id":"6","repeatflag":"1"},{"Id":"7","repeatflag":"1"},{"Id":"5","repeatflag":"1"}] 

所以基本上,我選擇任何項目被添加到陣列中有「repeatflag」設置爲「1」。我的PHP文件有一個腳本,用於更新MySQL數據庫中的「repeatflag」。當用戶準備就緒時,他們將點擊一個發送按鈕,它將在JSON數組中發佈它們的選擇。希望這是有道理的?

謝謝。

+0

你宣佈你的selectedItems對象[INT:字符串],但你描述它應該看起來像的方式是[字符串:INT]我嗎? –

回答

1

那麼從你的代碼看起來有點怪我,也許它是因爲我不知道它的背景下...但是你可以建立一個JSONArray你想是這樣的:

class ViewController: UIViewController, UITableViewDelegate { 

    var jsonArrayWithItemsToSendToPHP: [[String: AnyObject]] = [[String: AnyObject]]() 

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     let selectedItem = postsCollection[indexPath.row] 

     var jsonObjectToPutToArray: [String: AnyObject] = [String: AnyObject]() 
      jsonObjectToPutToArray["id"] = selectedItem.Id 
      jsonObjectToPutToArray["name"] = selectedItem.product 
      jsonObjectToPutToArray["repeatflag"] = 1 

     jsonArrayWithItemsToSendToPHP.append(jsonObjectToPutToArray) 
    } 

} 
+0

謝謝Neo。您提供的解決方案將其添加到數組中。 if語句的原因是,如果選中的項不在數組中,那麼將其添加。取消選擇該項目時,如果它在數組中,則應刪除它。因此,最終,我將只選擇陣列中選定的項目,而不管項目已選擇或未選擇多少次... 我試圖尋找一種方法來從陣列中刪除項目但無法管理..我猜這將與_filter_有關? –

+0

下面是包含選中和未選中項目的屏幕截圖... [項目選擇](https://cl12-dc3-cpt.dns-guards.com:2083/cpsess558602356/viewer/home%2fkimjorda%2fpublic_html/selectionScreen .png) –

+0

對不起,還有一件事 - 我知道我在推它.. :-)這是目前的結果.. '[[id:7,repeatflag:1,name:Ecotrin XL],[id:8 ,重複標記:1,名稱:Lorien]]' 是否有更改所列項目的'['爲'{',所以它看起來像.. '[{id:7,repeatflag:1,名稱:Ecotrin XL},{id:8,repeatflag:1,name:Lorien}]' –

0

類的ViewController :UIViewController中,{的UITableViewDelegate

var jsonArrayWithItemsToSendToPHP: [[String: AnyObject]] = [[String: AnyObject]]() 

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    let selectedItem = postsCollection[indexPath.row] 

    var jsonObjectToPutToArray: [String: AnyObject] = [String: AnyObject]() 
     jsonObjectToPutToArray["id"] = selectedItem.Id 
     jsonObjectToPutToArray["name"] = selectedItem.product 
     jsonObjectToPutToArray["repeatflag"] = 1 

    jsonArrayWithItemsToSendToPHP.append(jsonObjectToPutToArray) 
} 

}