通过UIButton将选定的UITableView行发送到MySQL数据库表



我的故事板是这样的

基本上我有两个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 + "&currentitem=(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]=13currentitems[1]=42等,与&分开。

最新更新