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?

Était-ce utile?

La 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.

Autres conseils

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.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top