我遇到了我的代碼問題。我想通過在窗體有效時創建一個包含變量的數組來驗證我的窗體。但要做到這一點,我需要使用isset方法來知道信息已發佈。這裏有一個簡單的例子isset導致getjson返回undefined
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方法返回{你好:世界名:鮑勃}但GET返回指定的任何用戶名這就是我在警報得到。它看起來像jquery試圖獲得代碼之前,它有一個機會完全處理,我怎樣才能防止這種情況?
良好的漁獲,我加了引號,但仍然得到同樣的錯誤。查看編輯 – richbai90 2013-03-07 16:35:53
我已經做了一些編輯!但最後一個音符可能是最重要的;-) – juco 2013-03-07 16:44:33
酷,所以我做了更新,並按照你說的做,我得到的錯誤沒有指定用戶名,這顯然意味着它不會與郵件發送。我現在的問題是爲什麼不。我的控制檯的網絡標籤清楚地說明了helloworld.php方法後。你知不知道發送了什麼?預覽還給了我{你好:「世界」名稱:「鮑勃」} – richbai90 2013-03-07 16:56:28