2012-01-03 60 views
0

我在這裏完全困惑。在我開始之前,我應該說我所有的代碼都是100%的工作,而這個問題似乎沒有明顯的原因。if/else語句不能在AJAX響應函數中工作

當用戶點擊一個按鈕時會產生一個AJAX調用,並且如果滿足條件則返回一個表單。然後,當用戶提交表單時,如果滿足條件,則會再次進行AJAX調用並提交數據。數據提交成功,並返回'成功'或'error_1','error_2'等。

什麼是不工作只是JS中的響應函數中的if/else語句。

這裏是PHP回調函數:

function submit_entry() { 

// my variables 

if($current_words > $max_words) { 

    echo 'max_words'; 

} elseif($current_words < $min_words) { 

    echo 'min_words'; 

} else { 

    $post_data = array(
     'ID' => $entryID, 
     'post_date' => date('YmdHis'), 
     'post_content' => $text, 
     'post_status' => 'publish' 
    ); 

    wp_update_post($post_data); 

    echo 'success'; 

} 

exit; 

} 

這裏是AJAX調用:

jQuery('#entrySubmit').click(function() { 
    jQuery.post(
     MyAjax.ajaxurl, 
     { 
      action : 'submit-entry', 
      etc. 
     }, 
     function(response) { 

      if(response == 'max_words') { 

       jQuery('#add_entry_error').html('You exceeded the maximum number of words.'); 

      } else if(response == 'min_words') { 

       jQuery('#add_entry_error').html('You have not written enough words, please write more.');    

      } else if(response == 'success') { 

       jQuery('#add_entry_step_1').slideUp(); 
       jQuery('#add_entry_step_2').slideDown(); 
       jQuery('#add_entry_error').html(''); 

      } 
      jQuery('#add_entry_error').append(response); 
     } 
    ); 
}); 

這裏jQuery('#add_entry_error').append(response);線成功追加要麼min_wordsmax_words,或者success - 那麼,爲什麼不if語句工作? 控制檯中沒有錯誤,正如我所說的,除了響應之外,它都可以工作。

+1

您是否檢查過是否輸入了ifs?你是否嘗試過調試,或者至少在那裏發出警報?您是否檢查過響應之前或之後是否沒有空白? – GolezTrol 2012-01-03 11:01:14

+0

嘗試提醒你的迴應,看看你得到了什麼 – Kishore 2012-01-03 11:01:39

+0

當我使用'alert'時,我得到了預期的迴應,就好像if語句只是拒絕工作。 – 2012-01-03 11:06:33

回答

1

有兩種邏輯可能性:if語句不工作,或者其中的代碼不起作用。嘗試將一個alert或其他東西放在大括號中,看看會發生什麼!

+0

我在使用'alert'時得到了預期的響應,就好像if語句只是拒絕工作一樣。 – 2012-01-03 11:06:08

+0

不,我的意思是把警報放在「if」後面的部分。如果你也得到了預期的迴應,那麼它不能是if語句 – Nicolas78 2012-01-03 13:51:00

0

你需要使用的

response.responseText 

代替

response 
在條件

-Vinay

+0

剛剛嘗試過,返回'undefined' – 2012-01-03 11:12:43

1

在Firebug調試過程中,我發現了一些非常奇怪的東西。

這是我的PHP文件中被附加到響應文本中的一些註釋。

確保您是否使用中間PHP文件來處理在該文件中沒有像這些<!--這樣的註釋的請求。