それで、私は無限の数の同様の問題を調べましたが、それらのどれも私が探していたものに答えたり、完全に答えたりしなかったので、皆さんが私を助けてくれることを願っています。
POSTを使用してiOSからPHPファイルにrestaurantIDの配列を渡すか、とにかくうまくいく必要があります。ASIHTTPRequestについては知っていますが、組み込みのものを探していて、開発者によって放棄されました。そして最後に、エントリがいくつあるかわからないので、URLを介してそれらを渡したくありません。
これが私がこれまでに得たものです。
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:theURL]];
[request setHTTPMethod:@"POST"];
NSMutableDictionary *jsonDict = [[NSMutableDictionary alloc] init];
[jsonDict setValue:restaurants forKey:@"restIDs"];
NSLog(@"JSON Dict: %@",jsonDict);//Checking my array here
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:kNilOptions error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"JSON String: %@",jsonString); //Checking my jsonString here...
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"json" forHTTPHeaderField:@"Data-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [jsonData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody: jsonData];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSLog(@"Return DATA contains: %@", [NSJSONSerialization JSONObjectWithData:returnData options:NSJSONReadingMutableContainers error:nil]);
NSArray *restMenuCount = [NSJSONSerialization JSONObjectWithData:returnData options:NSJSONReadingMutableContainers error:nil];
それで、この終わりから、私はすべてをチェックしました、そしてそれはすべて良さそうに見えます、しかしPHPの終わりからそれはそれを拾うことさえしません。
私のPHPファイルは次のようになります。
$restIDs = $_POST['restIDs'];
echo $restIDs; //Checking to see if it even has anything......but nothing there
for ($i = 0; $i < $restIDs.count; $i++) {
$query = "SELECT * FROM `MenuItems` WHERE rest_id = '$restID'";
$result = mysqli_query($connect, $query);
$number = mysqli_num_rows($result);
$menuNumber[$i] = $number;
}
echo json_encode($menuNumber);
最後に、私は何が間違っているのですか?PHP側で何も受信しないのはなぜですか。そして何よりも、POSTを介してアレイを送信する方法を誰かが私に説明できますか?それが私の本当の問題だと感じているので、自分で問題を解決するのに十分な理解がありません。iOS側からすべてを入れてPHP側で取得する方法がわかりません。
よろしくお願いします。
編集:
配列を文字列としてURLに渡してから展開してみましたが、幸いなことにうまくいきました...しかし、URLの制限をわずかに下回っているので、別の解決策を見つけたいと思います。少なくとも、コードの残りの部分が期待どおりに機能していることがわかりました。