结果是在ajax成功中连接起来

This is my ajax call code...I call this function on body onload.

function get_booking_id() {


    var baseurl = "<?php echo base_url().'index.php/controller_bookplot2/getbookingid'; ?>";

    $.ajax({ 
        url: baseurl,
        datatype:"html",
        success: function(html) {

            alert('booking'+html);
            $("#booking_id").val(html);
        }
    });
}

And this is my controller function..

function getbookingid() {

    $sql="select IFNULL(max(booking_id),0) as bookingID from booking";
    $query=$this->db->query($sql);

    if($query->num_rows() > 0) {

        foreach($query->result() as $row) {
                echo $x=$row->bookingID;
                echo $x+1;
        }
    }
}

So in alert when in database there is no value, it display 1, but next time it display 12 instead of 2. So I think it concatenating the result. I want to only 2 as alert not 12. What am I doing wrong???

Please remove echo for $x=$row->bookingID; if you don't need in response.

Updated controller function code:

function getbookingid(){

    $sql="select IFNULL(max(booking_id),0) as bookingID from booking";
    $query=$this->db->query($sql);

    if($query->num_rows() > 0){


    foreach($query->result() as $row){
        $x=$row->bookingID;
        echo $x+1;
    }
    }
   }

When is no value you are getting the value of echo $x+1;, (1) when you return a value you are getting echo $x=$row->bookingID; (the value is 1) and echo $x+1; (the value is 2, the $x who has the value of 1 plus 1 is 2), so in the script you get 12.

You can try removing the one of the echos:

function getbookingid() {

    $sql="select IFNULL(max(booking_id),0) as bookingID from booking";
    $query=$this->db->query($sql);

    if($query->num_rows() > 0) {

        foreach($query->result() as $row) {
                $x = $row->bookingID;
                echo $x;
        }
    }
}