Reputation: 589
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
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
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