how can i make this code to return the value without freezing the browser.
You can rewrite this with new method of course.
function get_char_val(merk)
{  
    var returnValue = null;
    $.ajax({   
                type:       "POST",
                async:      false,   
                url:            "char_info2.php",   
                data:   { name: merk },   
                dataType: "html",  
                success:    function(data)
                                    {
                                        returnValue = data;
                                    } 
        }); 
    return returnValue;
}
var px= get_char_val('x');
var py= get_char_val('y');
EDIT: i need to have at least 20 variables get from php file at other times.
This is not possible.
Javascript runs on the UI thread; if your code waits for the server to reply, the browser must remain frozen.
Instead, you need to return the value using a callback:
function get_char_val(merk, callback)
{  
    var returnValue = null;
    $.ajax({   
                type:       "POST",
                url:            "char_info2.php",   
                data:   { name: merk },   
                dataType: "html",  
                success:    function(data) {
                    callback(data);
                } 
        }); 
}
get_char_val('x', function(px) { ... });
get_char_val('y', function(py) { ... });
Note that the two callbacks will run in an unpredictable order.
You should modify your design so that you can get all twenty values in a single AJAX request.
For example, you can take a comma-separated list of values, and return a JSON object like { x: "...", y: "..." }.
You can not make variable assignments this way (async). you must set the variables in the success handler.
variableArray = new Array(); 
get_char_val('x');
get_char_val('y');
function get_char_val(merk)
{  
    var returnValue = null;
    $.ajax({   
        type:       "POST",
        url:            "char_info2.php",   
        data:   { name: merk },   
        dataType: "html",  
        success:    function(data)
            {
                variableArray[merk] = data;
            } 
    }); 
}
Once all of the retrievals are finished you can access the x and y variables by using variableArray[x] and variableArray[y]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With