2011-09-23 79 views
1

這是我列在執行Ajax請求我的jQuery/javascript代碼...

else { 
     $.post("http://www.example.com", {email: val}, 
     function(response){ 
      finishAjax('email', response); 
     }); 
    } 
     joinAjax('cemail'); 
} 
if (id == 'cemail') { 

     $('#cemailMsg').hide(); 
    var email = $('#email').val(); 
     if (errors.email == false) { 

       if (val != email) { 

Ajax請求的工作,一切都很好,但接下來的if語句,其中的說法是:

if (errors.email == false) { 

我需要能夠從我的ajax.php文件中設置該變量爲真或假,返回它使JavaScript可以讀取它。這可能嗎?? 這是因爲ajax正在檢查用戶名是否可用,如果不可用,表單錯誤將會阻止表單提交,否則用戶可以提交。

我的ajax.php文件:

if ($_REQUEST['email']) { 

$q = $dbc -> prepare("SELECT email FROM accounts WHERE email = ?"); 
$q -> execute(array($_REQUEST['email'])); 
if (!$q -> rowCount()) { 

    echo '<div id="emailMsg" class="success">Email OK</div>'; 
    exit(); 
} 
else { 

    echo '<div id="emailMsg" class="error">Email taken</div>'; 
    exit(); 
} 
} 

回答

2

爲什麼沒有你ajax.php返回一個關聯數組,像這樣:

echo json_encode(array("email" => "success", "key2" => "val2")); 

然後用

var responseJSON = JSON.parse(response); 

$.post回調函數讀取響應並採取相應措施。你可以生成適當的標記(divs或其他)客戶端並插入它。

0

您可能需要備份並確定您想要的內容。如果您只想根據帖子的結果顯示不同的訊息,請返回(從帖子開始)最小量的信息。在這種情況下,該值可以簡單地爲布爾值。電子郵件有效或無效。

我建議從您的帖子返回json。

如果您要返回json,則可以使用成功方法(function(response){})來操作或評估響應。

如果返回JSON(這可以從PHP字符串,在這種情況下),它的計算結果爲JavaScript對象。所以如果你返回'{「錯誤」:「真」}「它會評估到(response.errors ===真)在你的成功方法在後調用。

'錯誤'未定義,是否正確?使它成爲響應json對象的一個​​屬性,並且一定要測試你返回的數據的未定義值。

根據您的帖子得到的值生成HTML或操縱CSS。

本着這種精神,jQuery的可以很容易地HTML添加到DOM。嘗試

(有人可以解決我的格式,並添加代碼標籤,如果你可以編輯?我對我的細胞ATM)


$('&ltdiv></div>', { 
    text : 'your text here', 
    class : 'yourclass' 
}).appendTo($(element)); 
 
+0

是的,我喜歡返回true或false之後插入一切的想法,我所需要的只是一個布爾值,不管是真還是假。謝謝你。 –