私は決してここで何も尋ねたことはありませんが、バグがあります。AJAXを使用してエラーを処理するより適切な方法はありますか?
私は約1年間PHPを使っています。私はPHP、JQuery、MySQLなどを学びながら自分自身をかなり大きなプロジェクトにしました。それは完璧ではなく、完成さえしていませんが、新しい機能を追加しながら既存のコードを改善しようと常に努めています。テキストベースのMMORPGゲームです(まだ開発中です)、リンクが必要な場合はそれを提供しますが、私はそれを促進するためにここに来ませんでした。
手順上のPHPで大丈夫だと思いますが(私はまだ繰り返しコードに問題がありますが)、私はOOPに移行することに決めました。私は理論でそれを理解し、基礎を知っており、実際には徐々に進んでいますが、あまりにも遠くに移動する前に、あなたの助言が必要でした。手続き型コードと私のオリジナルゲームで
が、私は多くの場合、これらの線に沿って何かをやっている:
- ユーザー訪問ページを、shop.phpは言います。サイトを開くと、shop.phpは購入可能なアイテムのデータベースリストから取得します。空白があります#成功メッセージと#エラーメッセージの段落がサイトにあります。
- ユーザーは、その後、彼はJavaScriptをトリガー、AJAX呼び出しがbuy-に
- を返されるJSONを期待し、バイインitem.phpに行われている項目をクリックbuy-したいお店から項目を選択することができますitem.php配列を作成しています。$ result( "success" => 0、 "message" => "")
- buy-item.phpは、バックパックのスペースなどがあり、満たされていない条件がある場合、$ result ["message"]は、 "あなたはもっと金が必要です"と設定します。すべての条件が満たされた場合、result ["success"]は1に設定され、$ result ["message"]は "Purchase successful"に設定されます。最後に、AJAXにjson_encode($ result)が返されます。 AJAX 成功に
- :私はチェックすると(result.success)、および購入が成功した場合、私は思いますaccordingly-行動$( "#エラー・メッセージ")HTML(result.message)、それが成功した場合は、代わりにresult.messageを "#success-message"に入れます(同じ段落にエラーメッセージと成功メッセージの両方を表示できますが、これらのメッセージのスタイルは異なっており、成功は緑色で、エラーは赤色です)。
エラーを処理する正しい方法はありますか?それとも、私はそれを完全に違うようにコーディングすべきですか?このアプローチはOOPでも有効ですか?
のindex.php:
私はこの例で何を意味するかをお見せしましょう、私は現時点でいじるよ(は単純化のために、コードのセキュリティ、あるいは有用性を忘れてください)
<!DOCTYPE html>
<html lang="pl-PL">
<head>
<meta charset="UTF-8">
<script
src="https://code.jquery.com/jquery-3.2.1.min.js"
integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
crossorigin="anonymous">
</script>
<script src="script.js"></script>
</head>
<body>
<div id="wrapper">
<p id="error-message"></p>
<p id="success-message"></p>
<form id="registration-form" method="post">
<input type="text" placeholder="Account Name" name="nickname"></input>
<input type="text" placeholder="Password" name="password"></input>
<input type="text" placeholder="E-mail" name="email"></input>
<button type="submit">Register</button>
</form>
</div>
</body>
</html>
ユーザー。PHP
<?php
class User{
//register method
public function register($nickname, $password, $email){
$result = array("success" => 0, "message" => "");
//example validation
if($nickname==123){
$result["message"] = "Could not register.";
}
else{
//add user to the database
//sql code here
$result["success"] = 1;
$result["message"] = "Registration successful.";
}
return $result;
}
}
?>
registerProcessing.php
<?php
require_once 'User.php';
$user = new User();
echo json_encode($user->register($_POST["nickname"], $_POST["password"], $_POST["email"]));
?>
script.js
$(function() {
$("#wrapper").on("submit", "#registration-form", function(e){
e.preventDefault();
$.ajax({
type: "POST",
url: "registerProcessing.php",
data: $("#registration-form").serialize(),
dataType: "json",
success: function(result){
if(result.success){
$("#success-message").html(result.message);
}
else{
$("#error-message").html(result.message);
}
}
});
});
});
おそらくhttps://codereview.stackexchange.comでこれを求めてみてください。これは、このようなものを好きでした/。 – TheUknown
とあなたの人生の話をあなたの問題/質問になる前に伝えないでください。 –
ハハ、残念ケビン、私はちょうど私の最初のSOの投稿では、私についてのいくつかの言葉を言うことは適切だろうと思った、もう一度やっていない、約束! :) –