我的代码有问题。我想通过在表单有效时创建一个包含变量的数组来验证我的表单。但要做到这一点,我需要使用 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 forms 插件来提交表单。
我的表格看起来像这样
<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 在有机会完全处理之前试图获取代码,我该如何防止这种情况发生?