This is how my storyboard looks like
基本上,我有两个UITableView,它们连接到MySQL数据库中的表。(或者如果可能的话,用accessory type .checkmark标记的行)作为POST到我的数据库中的表。我已经准备好PHP代码,我能够在MySQL中发出POST请求并更新表,这不是这里的问题。我希望在按下按钮时,UITableView中的选定行被发送到特定的PHP代码。
@IBAction func selected(_ sender: UIButton) {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let currentCell = tableView.cellForRow(at: indexPath)! as UITableViewCell
let currentItem = currentCell.textLabel!.text
let alertController = UIAlertController(title: "", message: "You Selected " + currentItem! , preferredStyle: .alert)
let defaultAction = UIAlertAction(title: "Close", style: .default, handler: nil)
alertController.addAction(defaultAction)
present(alertController, animated: true, completion: nil)
let url = NSURL(string: "url")
// locahost MAMP - change to point to your database server
var request = URLRequest(url: url! as URL)
request.httpMethod = "POST"
var dataString = "secretWord=---" // starting POST string with a secretWord
// the POST string has entries separated by &
dataString = dataString + "¤titem=\(currentItem!)"
// add items as name and value
// convert the post string to utf8 format
let dataD = dataString.data(using: .utf8) // convert to utf8 string
do
{
// the upload task, uploadJob, is defined here
let uploadJob = URLSession.shared.uploadTask(with: request, from: dataD)
{
data, response, error in
if error != nil {
}
}
uploadJob.resume()
}
}
}
我试过这样做,我猜这只是一个混乱的代码,因为我仍然是一个初学者,但是的,我希望这种发送一个一般的信息,我的问题给你
我知道你可以使用IBAction来调用一个函数,然后将它发送到php代码中,但是我不知道如何准确地编写它。我试着在IBAction中使用if语句和tableView以及didSelectRowAt函数,但是似乎什么都不起作用。当我试图搜索它时,我没有在网上找到任何关于它的来源。
1条答案
按热度按时间63lcw9qa1#
如果问题是如何允许在表中选择多行,我们使用
allowsMultipleSelection
,您可以通过编程或在Interface Builder中设置它。然后在
didSelectRowAt
(和didDeselectRowAt
)中,不是只使用传递给委托方法的indexPath,而是使用indexPathsForSelectedRows
。如果您不想在每次选择和取消选择行时都向服务器发送更新,而是在与按钮关联的
@IBAction
方法中发送更新,则从didSelectRowAt
(和didDeselectRowAt
)中删除网络请求,并将其放在按钮的@IBAction
中,再次使用indexPathsForSelectedRows
。请注意,您可能希望将其作为数组(例如
currentitems[0]=13
和currentitems[1]=42
等)发送,而不是作为currentitem=...
发送,并以&
分隔。