Javascript传递变量问题没有返回

Hi All I have the following code to pass a JS variable using AJAX as seen below:

function buttonCallback(obj){

        var id = $(obj).attr('id');

         $.ajax({
            type: "POST",
            url: "/project/main/passid",
            data: { 'id': id  },
            success: function(msg){
                window.alert(msg);
            }
         });
    }

if I put an alert box in I can see the object id is successfully getting grabbed. however if in php I want to simply return the variable - I am getting a null has anyone got any ideas: heres my PHP function (I am using Codeigniter):

public function passid(){
        $courseId = $this->input->post('id');
        echo $courseId;
    }

EDIT: the success alert box appears - but appears blank and that is my issue I am hoping to see the ID

1. Can you make sure id equals something by doing this:

function buttonCallback(obj){

    var id = $(obj).attr('id');
    alert( id ); // What does it alert?

     $.ajax({
        type: "POST",
        url: "/project/main/passid",
        dataType: "json",
        data: { 'id': id  },
        success: function(msg){
            window.alert(msg.id);
        }
     });
}

2. Your javascript looks good... Can you try this instead to see if it works:

JS

function buttonCallback(obj){

    var id = $(obj).attr('id');

     $.ajax({
        type: "POST",
        url: "/project/main/passid",
        dataType: "json",
        data: { 'id': id  },
        success: function(msg){
            window.alert(msg.id);
        }
     });
}

PHP

public function passid(){
    $courseId = $this->input->post('id');
    $response = array( "id" => $courseId );
    header('Content-Type: application/json');
    echo json_encode( $response );
}

3. If this does not work, can you try and rename from id to something like poopoo, just to make sure id is not taken and being weird?

4. Can you check what the network response is of your ajax request - Go to developer toolbar and goto network section, make sure you hit the record/play button. then send your request off. When you see your request come up in the network list, check the "details" of it and goto response.