简体   繁体   中英

PHP wait cursor for form that submits to a PHP script without a page change

I have a simple HTML form to create a spreadsheet using PHPExcel. When the form submit button is clicked, a PHP page is called that creates the spreadsheet with PHPExcel and then exits (exit;). So, to the user, the page never changes and they just get a Excel workbook pop open.

I've been trying to figure out how to make the cursor change to an hourglass when the submit button is clicked, and then change back to a normal cursor before the PHP script exits.

I've tried several methods and nothing I've tried for adding or removing a wait cursor works. There's something about calling the PHP file on a form submit (without changing pages) that causing normal methods of changing the cursor not to work (I think).

Would anyone know a working method of setting a wait cursor on the submit of the form, and then setting the normal cursor back when the PHP script exits?

I am using jQuery and have tried normal and jQuery methods of changing the cursor. Thanks for any help.

<form action="export_updates.php" method="post" name="form1">                   
    <input type = "image" src = "../../images/excel_icon.png"  name = "submit" value = "submit" id="make_spreadhseet_1"/>
</form> 

So your script basically downloads an excel on submitting to export_updates.php , javascript alone cannot detect the start of a download (cause it needs to access clients filesystem which is not possible), all you can do is to show wait cursor just before window unloads,then after a few seconds then turn it back to default cursor here is the code for that

window.addEventListener("beforeunload", function (event) {
  document.body.style.cursor = 'wait';
  setTimeout(function(){document.body.style.cursor = 'default';},3000);
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM