我在這裏完全困惑。在我開始之前,我應該說我所有的代碼都是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_words
,max_words
,或者success
- 那麼,爲什麼不if語句工作? 控制檯中沒有錯誤,正如我所說的,除了響應之外,它都可以工作。
您是否檢查過是否輸入了ifs?你是否嘗試過調試,或者至少在那裏發出警報?您是否檢查過響應之前或之後是否沒有空白? – GolezTrol 2012-01-03 11:01:14
嘗試提醒你的迴應,看看你得到了什麼 – Kishore 2012-01-03 11:01:39
當我使用'alert'時,我得到了預期的迴應,就好像if語句只是拒絕工作。 – 2012-01-03 11:06:33