コードに問題があります。フォームが有効なときに変数を含む配列を作成して、フォームを検証したいと思います。ただし、これを行うには、情報が投稿されたことを知るためにissetメソッドを使用する必要があります。これが簡単な例です
http://richbaird.net/clregister
<?PHP
if(isset($_POST['username'])) {
$helloworld = array ("hello"=>"world","name"=>"bob");
print json_encode($helloworld);
};
if(!isset($_POST['username'])) {
echo json_encode(array('error' => true, 'message' => 'No username specified'));
?>
ユーザー名が投稿されている場合は、配列helloworldを作成してください。
私はjsonを取得するために次のメソッドを使用しています
<script>
//document ready
$(document).ready(function(){
var php = "helloworld.php";
//submit form
$("#loginform").ajaxForm
(
//on successful submission
function() {
//getjson
$.getJSON("helloworld.php",function(data) {
alert(data.message)
}) //close get json
.error(function(error) { alert(error.responsetext); })
.complete(function() { alert("complete"); });
} // close success
) // close submit
});
//end document ready
</script>
フォームを送信するためにjqueryフォームプラグインを使用しています。
私のフォームは次のようになります
<form id="loginform" name="loginform" method="post" action="helloworld.php">
<label for="username">username</label>
<input type="text" name="username" id="username" />
<br />
<label for="password">password</label>
<input name="password" type="password" />
<br />
<input name="submit" type="submit" value="Login" id="subtn" />
</form>
ネットワークコンソールには、POSTが{hello:world name:bob}を返すメソッドが表示されますが、GETは、アラートで取得したユーザー名が指定されていないことを返します。jqueryが完全に処理する前にコードを取得しようとしているようですが、どうすればこれを防ぐことができますか?