Swift:使用Alamofire从MYSQL获取JSON数组值

时间:2015-07-08 15:02:29

标签: php ios swift alamofire

我正在开发一个系统项目。如何使用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。请帮助我:(。我很困惑。抱歉我的英语不好!

2 个答案:

答案 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