2016-08-23 8 views
0

こんにちは、私はいくつかのwordpress ajaxを使用しようとしています。私の最初のAjaxリクエストはうまく動作しますが、2番目のものはうまく動作しません。Second Wordpress Ajax not firing

PHP

//Add Students Details to DB 
 
add_action('wp_ajax_my_action', 'my_action_callback'); 
 
function my_action_callback() { 
 

 
\t $fName = $_POST['fName']; 
 
\t $lName = $_POST['lName']; 
 
\t $dob = $_POST['dob']; 
 
\t $gender = $_POST['gender']; 
 
\t $diet = $_POST['diet']; 
 

 
\t $current_id = get_current_user_id(); 
 

 

 
\t global $wpdb; 
 

 
\t $result = $wpdb->insert( 
 
\t \t 'wp_students', 
 
\t \t array( 
 
\t \t \t 'ID' => NULL, 
 
\t \t \t 'first_name' => $fName, 
 
\t \t \t 'last_name' => $lName, 
 
\t \t \t 'birthdate' => $dob, 
 
\t \t \t 'gender' => $gender, 
 
\t \t \t 'dietary_requirements' => $diet, 
 
\t \t \t 'user_id' => $current_id 
 
\t \t) 
 
\t); 
 

 
\t echo json_encode($result); 
 
\t wp_die(); 
 
}

var data_value = { 
 
        action: 'my_action', 
 
        fName: $(acc[i]).find('input.fName').val(), 
 
        lName: $(acc[i]).find('input.lName').val(), 
 
        dob: $(acc[i]).find('input.dob').val(), 
 
        gender: $(acc[i]).find('select.gender').val(), 
 
        diet: $(acc[i]).find('textarea.diet_req').val() 
 
       }; 
 

 
       $.ajax({ 
 
        type: "post", 
 
        dataType: "json", 
 
        url: my_ajax_object.ajax_url, 
 
        data: data_value, 
 
        success: function(msg) { 
 
         if (msg == false) { 
 
          $('#insert_status').html('<strong><span style="color: red;">Error: </span></strong>Details Have Not Been Updated'); 
 
          return false; 
 
         } 
 
        }, 
 
        error: function(xhr, status, error) { 
 
         var i = JSON.parse(xhr.responseText) 
 
         alert(i.Message); 
 
        } 
 
       });
JSを:いくつかのいずれかが、これは

作品罰金が起こっている理由を教えてくださいすることができます

動作しません:

PHP

//Delete Students Details 
 
add_action('wp_ajax_my_delete', 'my_action_callback_delete'); 
 
function my_action_callback_delete() { 
 
\t echo 'here'; 
 
\t global $wpdb; 
 

 
\t $result = $wpdb->delete('wp_students', array('usesr_id' => get_current_user_id())); 
 
\t echo json_encode($result); 
 
\t wp_die(); 
 
}

をJS

var value = { 
 
        action: 'my_delete' 
 
       }; 
 
       $.ajax({ 
 
        type: "post", 
 
        dataType: "json", 
 
        url: my_ajax_object.ajax_url, 
 
        data: value, 
 
        success: function(msg) { 
 
         if (msg == false) { 
 
          $('#insert_status').html('<strong><span style="color: red;">Error: </span></strong>Details Have Not Been Updated'); 
 
          return false; 
 
         } 
 
        }, 
 
        error: function(xhr, status, error) { 
 
         var i = JSON.parse(xhr.responseText) 
 
         alert(i.Message); 
 
        } 
 
       });

あなたは私は素晴らしいだろう手助けができれば。 Wordpress Ajaxは、普通のAjaxほど単純ではありません。

+0

すべきですか? 0や-1のように?あなたはログインしているユーザーのみの要求を発していますか? https://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action)をチェックして、正しい方法を実行しているかどうかを確認してください。 – silver

+0

ちょっと@silver私はワードプレスコーデックスに従っています。私はすべての応答を受信して​​いない奇妙です。 –

+0

ログインしていないユーザーのコードを実行していますか? '' 'add_action( 'wp_ajax_nopriv_my_delete'、 'my_action_callback_delete');' ''がまだ動作していない場合は、問題があなたのjsコードに含まれていることを確認してください。 – silver

答えて

1

あなたの削除機能に入力ミスがありますか?

'usesr_id' => get_current_user_id()

おそらくあなたはどんなRESPONSを手に入れた

'user_id' => get_current_user_id()

//Delete Students Details 
 
add_action('wp_ajax_my_delete', 'my_action_callback_delete'); 
 
function my_action_callback_delete() { 
 
\t echo 'here'; 
 
\t global $wpdb; 
 

 
\t $result = $wpdb->delete('wp_students', array('usesr_id' => get_current_user_id())); 
 
\t echo json_encode($result); 
 
\t wp_die(); 
 
}

+0

ちょっと、私はそれを修正した誤植を見つけていただきありがとうございます!しかし、それはまだ動作しません。私はPHP関数を全く入力しません –

+1

あなたはそれをどうやって知っていますか?応答がないと判断するためにどのような方法を使用していますか? –

+0

ブラウザのデベロッパーコンソールで[ネットワーク]タブを使用して、お返事の内容をお知らせください。 –