我正在开发一个系统项目。如何使用Alamofire在MySQL中显示3列值到3 UILabel(1.nameLabel.text,2。idnumberLabel.text,3。statusLabel.text)。
PHP代码xxxx.php:
if ($_GET) {
$idnumber = $_GET['idnumber'];
// get a product from products table
$stmt = $pdo->prepare("SELECT * FROM register WHERE idnumber = :idnumber");
$stmt->execute(array(":idnumber" => $idnumber));
$result = $stmt->fetch();
if (!empty($result)) {
// check for empty result
if ($stmt->rowCount() > 0) {
$user = array();
$user["name"] = $result["name"];
$user["idnumber"] = $result["idnumber"];
$user["status"] = $result["status"];
// success
$response["success"] = 1;
// user node
$response["user"] = array();
array_push($response["user"], $user);
// echoing JSON response
echo json_encode($response);
} else {
// no product found
$response["success"] = 0;
$response["error_message"] = "Not registered user";
// echo no users JSON
echo json_encode($response);
}
} else {
// no product found
$response["success"] = 0;
$response["error_message"] = "No user found";
// echo no users JSON
echo json_encode($response);
}
} else {
// required field is missing
$response["success"] = 0;
$response["error_message"] = "Required field(s) is missing";
// echoing JSON response
echo json_encode($response);
}
这是按ID号 http://localhost/xxxx.php/idnumber= 查找用户的链接 我想使用UITextfield来执行 idnumber 。
JSON编码
{"success":1,"user":[{"name":"PETER JENSEN","idnumber":"35433332","status":"PROCESS"}]}
Swift Code:
@IBAction func CheckUserStatusTapped(sender: UIButton) {
var idnumber = self.idnumberTextField.text
let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
let parameters =
["idnumber": idnumber]
//load and parse the JSON into an array
Alamofire.request(.POST, "http://localhost/xxxx.php", parameters: parameters).responseJSON { (request, response, data, error) in
var name = jsonResult [0]["name"]
var idnumber = jsonResult [0]["idnumber"]
var status = jsonResult [0]["status"]
}
}
我尝试了这个,但它没有任何错误。我不知道将这个值显示给UILabel。请帮助我:(。我很困惑。抱歉我的英语不好!
答案 0 :(得分:1)
如果检索到的data
正确,则此问题会显示如何解析JSON响应。事实上,您的代码jsonResult
永远不会被声明。
Swift/PHP How to display mysql data (json) in UITableView using Alamofire
答案 1 :(得分:1)
当您声明sessions_controller.rb
并将其指定为idnumberTextField.text时,您将复制存储在idnumberTextField.text中的字符串。当你去年后分配其他东西时,它不会对idnumberTextField.text做任何事情。这是您希望开发的关于编程的关键理解。
CheckUserStatusTapped范围内的idnumber声明也被响应处理程序中的idnumber声明所掩盖。即使你没有这样做,分配给idnumber并不会改变idnumberTextField上的.text属性。
您需要修改UILabel对象本身以使其显示其他内容。
您也不想从后台线程更新UI。在您的响应处理程序中,您将要将函数调度到主线程,如下所示:
var idnumber