2012-07-06 86 views
0

我用ajax一些數據發送到服務器和我收到2個變量,成功和錯誤,這取決於如果郵件發送與否。我如何用ajax聽他們,我如何提醒他們,並且php代碼是否正確?聽PHP的echo與阿賈克斯

PHP代碼:

if ($send){ 
    echo json_encode($success); 
} else { echo json_encode($error); 
    } 
+0

沒有人有一個解決方案的工作? – viktor 2012-07-06 16:42:21

回答

1

您可以在這種方式

$result["error"] = false; 
if($send) { 
    $result["data"] = $success 
    echo json_encode($result); 
} else { 
    $result["error"] = true; 
    echo json_encode($result); 
} 
+0

和$ .ajax部分?它看起來如何? – viktor 2012-07-06 15:53:05

1

我會假設你$send變量是從mail()函數的返回值做到這一點,類似這樣的東西:

$headers = 'From: [email protected]'; 
$send = mail('[email protected]', 'Subject', 'Message', $headers); 

echo json_encode(array('success' => ($send ? 1 : 0))); 

你可以使用jQuery通過AJAX調用它這樣:

$.ajax({ 
    url: '/path/to/script.php', 
    success: function(json) { 
     var obj = JSON.parse(json); 
     if(obj['success'] == 1) { 
      alert('Success!'); 
     } else { 
      alert('Fail!'); 
     } 
    } 
}); 
+0

你是對的,$ send是這樣定義的:$ send = @mail($ mailTo,$ subject,$ message,「From:」。$ mailFrom1);但是,當我嘗試解決方案時出現以下錯誤:200 SyntaxError:JSON.parse:意外的數據結束。不過,這封電子郵件是由兩位發件人發送的。 – viktor 2012-07-06 16:09:39

+0

嘗試通過AJAX直接在瀏覽器中導航到頁面。你應該看到的輸出線沿線的東西:'{「成功」:1}'(它也將重新發送電子郵件) – 2012-07-06 16:26:02

+0

你真的失去了我在這裏......那我打電話是一個簡單的腳本到頁面發送也被阻止的電子郵件\t \t event.preventDefault();我只需要獲取false或true變量,以便使用jquery進行一些更改。 – viktor 2012-07-06 16:30:11