3
データを処理するために使用したいPHPファイルがあります。 phpファイルには、配列をパラメータとして取り込む関数が含まれています。iOS - パラメータをAFNetworkingに渡す方法(Objective-C)
PHP関数:
-(void) connectToPHP:(NSArray *)parameters
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
NSString *URLString = [[NSString alloc] initWithFormat:@"ip.address/email.php"];
[manager POST:URLString parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSData *jsonData = responseObject;
NSError * error=nil;
id reponse = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
NSLog(@"JSON response: %@", [reponse objectForKey:@"response"]);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if(error){
NSLog(@"%@ Error:", error);
}
}];
}
ファンクションコール:
私はObjective-CのObjective-CのコードにPHPコードに接続するためにAFNetworkingを使用しています
func((array)$input->foos as &$foo){
$request = mb_strtolower($foo->request);
$found = false;
$loopCount = 0;
while($found === false && $loopCount < 3){
if($request === 'single' || $request === 'corner'){
$foo->request = $single_priority[$loopCount];
}
else if($request === 'double'){
$foo->request = $double_priority[$loopCount];
}
else if($request === 'quad'){
$foo->request = $quad_priority[$loopCount];
}
$rooms = getRooms($foo, $link, $roomcounts[$foo->request]);
if($room = $rooms->fetch_assoc()){
$found = true;
if ($loopCount === 0){
if(!$link->query("REPLACE INTO reservations VALUES('{$room['room_id']}', '{$foo->user_id}',
'{$foo->move_in_date}', '{$foo->move_out_date}', 'Incoming', '{$foo->date_added}')")){
$arr = array();
$arr['error'] = "Error: " . $link->error;
echo json_encode($arr);
die();
}
array_push($result, array('user_id' => $foo->user_id, 'room_assigned' => $room['room_id'], 'request_status' => 0));
if(!$link->query("DELETE FROM res_waiting WHERE user_id = '{$foo->user_id}'")){
$arr = array();
$arr['error'] = "Error: " . $link->error;
echo json_encode($arr);
die();
}
}
else{
if(!$link->query("INSERT IGNORE INTO reservations VALUES('{$room['room_id']}', '{$foo->user_id}',
'{$foo->move_in_date}', '{$foo->move_out_date}', 'Incoming', '{$foo->date_added}')")){
$arr = array();
$arr['error'] = "Error: " . $link->error;
echo json_encode($arr);
die();
}
array_push($result, array('user_id' => $foo->user_id, 'room_assigned' => $room['room_id'], 'request_status' => 1));
}
}
$loopCount += 1;
}
if (found === false){
array_push($result, array('user_id' => $foo->user_id, 'room_assigned' => 0, 'request_status' => 2));
}
}
NSDictionary *foo = @{
@"id" : @"2011011",
@"request" : @"single",
@"gender" : @"M",
@"username" : @"name",
};
NSArray *arr = [NSArray arrayWithObjects:foo, nil];
[self connectToPHP:arr];
Ho私がこれを実行すると、phpファイルの関数が正しく実行されず、エラーが発生します。私はそれがどのように配列をパラメータとして渡すかと関係していると思います。
何を達成したいですか?私たちが '推測'できるようにあなたの関数を示してください...あなたが渡したい配列ではないかもしれませんが、あなただけがそれを知っています。 – YvesLeBorg
更新された質問。 – king