EDIT:さて、考えてみると、JSONはこれに適しているように聞こえます。正しくコーディングしている限り、それを混乱させる構文エラーなどはありません。
こんばんは!
AJAX リクエストで PHP から返されたデータを処理する方法と、データを返す方法です!
ログインフォームがあり、送信されたフォームデータを AJAX で処理するとします。簡単にするために GET を使用するとします。
"page.php?username=Foo&password=bar"
これが私を悩ませている/いらいらさせるものであり、なぜ私は強迫観念を感じ、これを行う正しい方法を知る必要があるように感じるのか:
データを送信し、処理されました。それで?
ユーザー名とパスワードが有効/正しいとします。私は何をしますか?
PHPでtrueを返しますか? 文字列?
では、JavaScript はどうすればよいでしょうか。
if(ajaxRequest.responseText=="true"){
//Username and password are correct! Execute this...
}
私がクールなアイデアだと思ったのは、JSON オブジェクトを文字列として返し、JavaScript で解析することでした。
var object=JSON.parse(ajaxRequest.responseText);
if(object.success=="true"){
//Username and password are correct! Execute this...
}
しかし、ユーザー名とパスワードの組み合わせが間違っている場合はどうなりますか? PHP 経由でfalseを返しますか、それとも文字列を返しますか?
trueとfalseの間の選択肢は 2 つだけです: 1. ユーザー名とパスワードが正しかった 2. ユーザー名とパスワードが正しくなかった
しかし、ユーザー名さえ存在しない場合はどうなるでしょうか? 「false」を返すことは、クライアントがログインできない理由を正確に伝えるのに役立ちません.
これについて私の OCD を深く掘り下げると、予期しないエラーや解析エラーはどうなりますか?
ある種の DB 接続エラーまたは解析エラーがある場合、それを返してユーザーに伝えるにはどうすればよいですか? Trying... and Catching 構文エラーを調べましたが、うまくいきませんでした。
私が持っていた最近の考えは、これを行うことでした:
すべてが適切に実行され、ユーザー名とパスワードが存在する場合 (元のシナリオに戻ります)、何も返しません。responseText は空の文字列になります。これは、ユーザーが正常にログインしたことを意味します。
それ以外の場合、エラーが発生した場合は、DOが何か (通常は文字列) を返し、それをエラーとして表示します。
私はこれを正しい方法で行っていますか?私は正しい軌道に乗っていますか?