質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

822閲覧

PHP側に正しく値がinsertされてない

mary0303

総合スコア13

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

1クリップ

投稿2018/06/20 10:35

前提・実現したいこと

お世話になっております。
現在、選択したボタンの値をHTTP通信を利用して「.php」に表示させるシステムを作っています。
以下のリンクは、以前質問させていただいた内容です。今回はその進化版です。
Swiftでアンケート(複数選択可)を作りたい
送信したデータをみて、データがあれば1、なければ0で判定する仕組みになっています(PHP側は知り合いが作り、この様な説明をしていました)
(動作例)
①「カレーライス」と「寿司」をタップ【このとき、空の配列Qhoge内にnameの「カレーライス」と「寿司」。空の配列Qcount内にnumの「1」と「3」が追加される。】
②「確認画面へ」をタップすると、確認画面へ遷移
③「送信」をタップするとデータをサーバに送信

下の画像が正しくinsertされているか確認するviewerです。
上記の動作例であれば、”ans2_1”と”ans2_3”が0から1に変わるはずです。
しかし、0のまま変わっていないため正しく値が入っていないことになります。
![]
どの様なコードを書けばいいのかもわからない状態で困っています。
どうか、ご教授よろしくお願いします。

該当のソースコード

Swift

1//AppDelegate.swift 2import UIKit 3 4@UIApplicationMain 5class AppDelegate: UIResponder, UIApplicationDelegate { 6 7 var window: UIWindow? 8 //空の配列を宣言 9 var Qhoge: [String]? = [] 10 var Qcount: [Int]? = [] 11/*以下略*/ 12}

Swift

1//ViewController.swift(選択画面) 2import UIKit 3 4class ViewController: UIViewController { 5 6 let QDataList = [(name:"カレーライス", num:1), (name:"ラーメン", num:2), (name:"寿司", num:3), 7 (name:"ハンバーグ", num:4), (name:"焼き肉", num:5), (name:"その他", num:6)] 8 var QappDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate 9 10 11 @IBAction func CurryBtn(_ sender: Any) { 12 //Qhoge配列に含まれている場合 13 if let index = QappDelegate.Qhoge?.index(of: QDataList[(sender as AnyObject).tag-1].name) { 14 QappDelegate.Qhoge?.remove(at: index) 15 QappDelegate.Qcount?.remove(at: index) 16 print(QappDelegate.Qhoge!) 17 print(QappDelegate.Qcount!) 18 19 } else { 20 //Qhoge配列に含まれていない場合 21 QappDelegate.Qhoge?.append(QDataList[(sender as AnyObject).tag-1].name) 22 QappDelegate.Qcount?.append(QDataList[(sender as AnyObject).tag-1].num) 23 print(QappDelegate.Qhoge!) 24 print(QappDelegate.Qcount!) 25 } 26 } 27 28 @IBAction func NextBtn(_ sender: Any) { 29 let storyboard: UIStoryboard = self.storyboard! 30 let Confimation = storyboard.instantiateViewController(withIdentifier: "q") 31 self.present(Confimation, animated:true, completion: nil) 32 } 33} 34

Swift

1//Confirmation.swift(確認及び送信画面) 2import UIKit 3 4class Confirmation: UIViewController, UIScrollViewDelegate { 5 6 var ANS: [Int]! 7 8 var QappDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate 9 10 var QrecievedHoge: [String] = [] 11 var QrecievedCount: [Int] = [] 12 13 var CurryLabel = UILabel() 14 var RamenLabel = UILabel() 15 var SushiLabel = UILabel() 16 var HamburgerLabel = UILabel() 17 var GrilledMeatLabel = UILabel() 18 var OtherwiseLabel = UILabel() 19 20 @IBAction func btnAction(_ sender: Any) { 21 self.ANS = QrecievedCount 22 //URLはわからないようにしています 23 let stringUrl = "http://!!!.??.!?!.?!?.php?ans2=[(self.ANS)]" 24 print(stringUrl) 25 let url = URL(string: stringUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!)! 26 let task = URLSession.shared.dataTask(with: url) { 27 data, response, error in 28 29 if let response = response { 30 let statusCode = (response as! HTTPURLResponse).statusCode 31 print(statusCode) 32 } 33 } 34 task.resume() 35 } 36 37 38 override func viewDidLoad() { 39 super.viewDidLoad() 40 41 QrecievedHoge = QappDelegate.Qhoge! 42 QrecievedCount = QappDelegate.Qcount! 43 44 let scrollView = UIScrollView() 45 scrollView.backgroundColor = UIColor.blue 46 //表示窓のサイズと位置を指定 47 scrollView.frame.size = CGSize(width: 400, height: 520) 48 scrollView.frame = CGRect(x: 350, y: 221, width: 400, height: 200) 49 //中身の大きさを設定 50 scrollView.contentSize = CGSize(width: 400, height: 480) 51 //スクロールの跳ね返り 52 scrollView.bounces = false 53 //スクロールバーの見た目と余白 54 scrollView.indicatorStyle = .white 55 scrollView.delegate = self 56 57 for i in 0 ..< QrecievedHoge.count { 58 switch QrecievedHoge[i] { 59 case "カレーライス": 60 CurryLabel.text = QrecievedHoge[i] 61 CurryLabel.sizeToFit() 62 CurryLabel.backgroundColor = UIColor.white 63 CurryLabel.center = CGPoint(x: 175, y: 30*(i+1)) 64 scrollView.addSubview(CurryLabel) 65 case "ラーメン": 66 RamenLabel.text = QrecievedHoge[i] 67 RamenLabel.sizeToFit() 68 RamenLabel.backgroundColor = UIColor.white 69 RamenLabel.center = CGPoint(x: 175, y: 30*(i+1)) 70 scrollView.addSubview(RamenLabel) 71 case "寿司": 72 SushiLabel.text = QrecievedHoge[i] 73 SushiLabel.sizeToFit() 74 SushiLabel.backgroundColor = UIColor.white 75 SushiLabel.center = CGPoint(x: 175, y: 30*(i+1)) 76 scrollView.addSubview(SushiLabel) 77 case "ハンバーグ": 78 HamburgerLabel.text = QrecievedHoge[i] 79 HamburgerLabel.sizeToFit() 80 HamburgerLabel.backgroundColor = UIColor.white 81 HamburgerLabel.center = CGPoint(x: 175, y: 30*(i+1)) 82 scrollView.addSubview(HamburgerLabel) 83 case "焼き肉": 84 GrilledMeatLabel.text = QrecievedHoge[i] 85 GrilledMeatLabel.sizeToFit() 86 GrilledMeatLabel.backgroundColor = UIColor.white 87 GrilledMeatLabel.center = CGPoint(x: 175, y: 30*(i+1)) 88 scrollView.addSubview(GrilledMeatLabel) 89 case "その他": 90 OtherwiseLabel.text = QrecievedHoge[i] 91 OtherwiseLabel.sizeToFit() 92 OtherwiseLabel.backgroundColor = UIColor.white 93 OtherwiseLabel.center = CGPoint(x: 175, y: 30*(i+1)) 94 scrollView.addSubview(OtherwiseLabel) 95 default: break 96 } 97 } 98 self.view.addSubview(scrollView) 99 } 100} 101

補足情報(FW/ツールのバージョンなど)

使用ツール:Xcode9.4 使用言語:Swift4.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問