1

私がやりたいこと?
javascriptajaxをjQueryajaxに変更することを考えています。短く見えて、たくさんの人が使っているのを見ましたが、なかなかうまくいきません。

私はこれまでに何を持っていますか?
私は要素を持っています:要素を
<li id="unique_id" onmousedown="check_element(event, this)">1</li>
クリックすると、どのキーが押されたかがチェックされ、そのmouse1が要素の背景をチェックします。要素に背景色がない場合は、要素を「赤」に変更し、ajaxを使用して要素のIDをMySQLデータベースに追加します。すでに背景が赤の場合(以前に追加されたことを意味します)、ajaxを使用してデータベースから削除します。

コード
チェック機能

function check_element(evt, e){
    if(evt.which == 1){
        if(e.style.background == "") {
            e.style.background = "red";
            send_with_ajax("add", e);
        } else {
            e.style.background = "";
            send_with_ajax("delete", e);
        }
    }
} 

Ajax(javascript付き):

function send_with_ajax(action, e){
    var xmlhttp;
    if (window.XMLHttpRequest){
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    } 
    xmlhttp.open("GET","ajax/send_calendar.php?data="+e.id+"&action="+action+"",true);
    xmlhttp.send();
}

send_calendar.phpは異常なことではありません。データベースから変数を取得$_GET['']し、データベースから値をINSERTSまたはDELETESするだけです。問題は、この関数をjQuery Ajaxに変更するにはどうすればよいですか?

私は何を試しましたか?

function send_with_ajax(action, e){
    $.Ajax({
        type: "GET",
        url: "send_calendar.php",
        data: "data="+e.id+"&action="+action+"",
        success: function(msg){
            alert( "Data Saved: " + msg ); //never shows this alert
        }
    });
} 

また、エラーが発生します:
Uncaught TypeError: Object function (a,b){return new e.fn.init(a,b,h)} has no method 'Ajax'

PS。これまでjQueryAjaxを使用したことがないので、何が間違っているのかわかりません。

4

2 に答える 2

4

$.ajax大文字と小文字は区別されますが、ではありません$.Ajax

dataまた、このオプションはオブジェクトを入力として受け入れ、$.ajaxそれ自体でパラメーターのシリアル化を行うことに注意してください。

$.ajax({
    type: "GET",
    url: "ajax/send_calendar.php",
    data: {
        "data" : e.id,
        "action": action
    },
    success: function(msg) {
        alert("Data Saved: " + msg);
    }
});

.get()GETリクエストとPOSTリクエストの短縮メソッドも.post()それぞれ存在します。

于 2013-01-29T19:50:25.630 に答える
-2

jQueryを使用する場合は、正しいラッパーコードも用意してください。

$(document).ready(function() {

 $.ajax({
       type: "GET",
        url: "send_calendar.php",
        data: "data="+e.id+"&action="+action+"",
        success: function(msg){
            alert( "Data Saved: " + msg ); //never shows this alert
        }
    });

});
于 2013-01-29T19:57:25.403 に答える