JavaScript(jQuery)でAjaxを使ってPHPにデーターを送信、送信されたデーターを基にPHPがMySQLサーバーのテーブル内に該当するデーターがあるか確認、結果をJavaScriptに戻す、結果によって処理を変える、ということをやりたいのですが、「結果によって処理を変える」というところでうまく条件分岐ができていません。そこまではうまくいっています。
こちらがコードになります。
JavaScript
1$.ajax({ 2 type: "POST", 3 url: "/login.php", 4 data: 'id=' + getQueryVariable('id') + '&username=' + $('#username').val() + '&password=' + $("#password").val() 5}).done(function(result){ 6 if (result == "1"){ 7 //データーがあった場合の処理 8 }else{ 9 alert("データーがありませんでした"); 10 } 11});
↓login.php↓
PHP
1<?php 2$mysqli = new mysqli('IP', 'ユーザー名', 'パスワード', 'データーベース名'); 3$mysqli->set_charset('utf8'); 4$result = $mysqli->query("SELECT COUNT(*) AS result FROM users WHERE id = '".$_POST["id"]."' AND name = '".$_POST["username"]."' AND password = '".$_POST["password"]."'"); 5$row = $result->fetch_row(); 6echo $row[0]; 7$mysqli->close(); 8?>
テーブル内に同じデーターは存在しないと考えて下さい。
PHPの$row[0]はstringだったので、JavaScript側では1を文字列として扱っています。
JavaScript側の条件分岐の手前で一旦$row[0]の中身を表示させてみたのですが、データーの有無によって1か0が切り替わっているのを確認したので、ちゃんとカウントはできています。
しかし、その後の条件分岐のところでresultの中身が1なのにもかかわらず「データーがありませんでした」と表示されてしまいます。
resultの中身を表示させると、データーがあった場合、「1string(1) "1"」、データーがなかった場合「0string(1) "0"」と表示されました。
どこがおかしいのでしょうか?アドバイス下さい。よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/13 10:28 編集