Question

I need to make a button, and when I click on it I'll do the same if I had such form:

<form action="myscript.php" method="post">
    <input type="hidden" name="items[]" value="..." />
    <input type="submit">
</form>

and clicked submit. On the PHP side I use proper headers and make the force download.

The reason why I can't use a form here, because I have a lot of parameters, and it's not that easy to use a form tag in my HTML markup. Moreover, these parameters are dynamically made, so...

But if I use just $.ajax of course It won't work, I'll just get php response in this ajax request, but the browser won't start downloading the file

Any suggestions?

Was it helpful?

Solution

Just redirect to the download page, if it has the correct headers on that page, it wont change what page they're on, just download the file with a prompt.

OTHER TIPS

Simple answer: Don't use GET. Use POST instead!

<script>
 var info = ""; // Somewhere for the response to go
 var obj = $.post(
             raw_url,
             { var1:value1, var2:value2 },
             function(data) { info = data; } );
</script>

On the PHP side, you'll receive any array based data AS an array (thus if value2 were a javascript array, you'll receive it in PHP as an array as well.)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top