user913059
user913059

Reputation: 589

Use JavaScript confirm dialog to make a PHP call in the background

OK, not really sure if this is possible but thought I'd ask anyway :)

I have a HTML page which contains some information and a link. The link calls a JavaScript confirm dialog box. If the user selects OK then I want to call a function in a PHP file, but in the background, i.e I don't want to change page, reload or anything.

Is this possible?

Thanks

T

Upvotes: 5

Views: 1281

Answers (2)

Jeff Lambert
Jeff Lambert

Reputation: 24661

Use AJAX. The following uses jQuery:

if(confirm('Are you sure?')) {
    $.ajax({
        url: '/path/to/file.php',
        data: 'url=encoded&query=string', // Can also be an object
        success: function(output) {
            // This function is called after the PHP file completes.
            // The variable passed in is a string containing all output of
            // your PHP script (i.e. echo / print )
        }
    });
}

For more information, check out jQuery's documentation for AJAX. If you cannot use jQuery, there are many tutorials on using native JavaScript to make AJAX Requests.

If you are returning a large amount of data back to your success function from PHP, it would be worthwhile for you to return the data from PHP as a JSON encoded array, which can be safely parsed client-side into a JavaScript object.

Upvotes: 6

Naveed
Naveed

Reputation: 42093

$('.LinkClass').click(function(){

  if( confirm('Is it OK?') ) {

    $.ajax({
        url: 'action.php',
        type: 'POST',
        data: 'data=value', // Can also be an object
        success: function(data) {
            // Do Nothing
        },
        error: function(){
           alert('Error');
        }
    });

  }

});

Upvotes: 3

Related Questions