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;
}
}
}