我的故事板是这样的
基本上我有两个UITableViews连接到我的MySQL数据库表。我希望它发送选定的行(或如果可能的话,与附件类型。checkmark的行)作为POST到我的数据库中的表按下一个按钮。我有PHP代码准备好了,我能够使POST请求和更新MySQL表,这不是这里的问题。当按钮被按下时,我希望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代码,但我只是不确定如何准确地编码它。我试图使用if语句与tableView和didSelectRowAt函数内的IBAction,但似乎没有工作。当我试着搜索它时,我没有在网上找到任何关于它的资源。
如果问题是如何允许在表中选择多行,我们使用allowsMultipleSelection
,您可以通过编程或在Interface Builder中设置。
然后在didSelectRowAt
(和didDeselectRowAt
)中,而不是仅仅使用传递给委托方法的indexPath,而是使用indexPathsForSelectedRows
。
如果你不想在每次选择和取消选择时都将更新发送到服务器,而是在与按钮关联的@IBAction
方法中,然后从didSelectRowAt
(和didDeselectRowAt
)中删除网络请求,而不是将其放在按钮的@IBAction
中,再次使用indexPathsForSelectedRows
。
注意,而不是currentitem=...
,您可能希望将其作为数组发送,例如currentitems[0]=13
和currentitems[1]=42
等,与&
分开。