首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用带参数的按钮onClick调用PHP函数?

用带参数的按钮onClick调用PHP函数?
EN

Stack Overflow用户
提问于 2016-12-19 21:41:00
回答 2查看 12.2K关注 0票数 1

你好,我想在用户点击按钮时调用函数download,基本上是:

代码语言:javascript
运行
复制
<input type='button' name='Release' onclick="document.write('<?php downloadFichier($tab1, $t2) ?>');" value='Click to Release'>

当然不起作用,所以我试着用AJAX,我不懂这种语言,但可以做我想做的事情:用两个参数调用我的PHP函数?

代码语言:javascript
运行
复制
<button type="button">Click Me</button>
<p></p>
<script type="text/javascript">
    $(document).ready(function(){
        $("button").click(function(){

            $.ajax({
                type: 'POST',
                url: 'file_product.php',
                success: function(data) {
                    $("p").text(data);
                }
            });
   });
});
</script>

谢谢你对我的照顾。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-19 21:56:49

您应该使用onclick事件调用js-function,如下所示:

代码语言:javascript
运行
复制
<input type='button' name='Release' onclick="downloadFichier(param1, param2)" value='Click to Release'>

你的AJAX函数应该是这样的:

代码语言:javascript
运行
复制
function downloadFichier(param1, param2){

        $.ajax({
            type: 'POST',
            url: 'file_product.php',
            data: "param1=" + param1 + "&param2=" + param2,
            success: function(data) {
                $("p").text(data);
            }
        });

您可以在PHP-script中根据参数的名称(param1,param2)从$_REQUEST数组中获取参数。

票数 3
EN

Stack Overflow用户

发布于 2016-12-19 22:12:30

@PaulBasenko启发了这个替代方案,你可以通过一些<input type="hidden" />来设置参数:

HTML

代码语言:javascript
运行
复制
<form action="#" method="POST" id="form1">
    <input type="hidden" name="tab1" value="<?= $tab1 ?>" />
    <input type="hidden" name="t2" value="<?= $t2 ?>" />
    <button type="submit">Click to Release</button>
</form>

Javascript

代码语言:javascript
运行
复制
$(function() { // equivalent of "$(document).ready(function(){"
    $('body').on('submit', '#form1', function(event) {
        event.preventDefault();

        var formData = $(this).serialize();

        $.ajax({
            type : 'POST',
            url : 'file_product.php',
            data : formData,
            success : function(data) {
                $('#p').text(data);
            }
        });
    });
});

PhP

代码语言:javascript
运行
复制
<?php
    $tab1 = (isset($_POST['tab1'])) ? $_POST['tab1'] : null;
    $t2 = (isset($_POST['t2'])) ? $_POST['t2'] : null;

    // process & return json_encoded data
?>

它是如何工作的?

当单击按钮时,这是一个type="submit",它将触发其父formsubmit事件。然后,jQuery监听这个事件,并使用èvent.preventDefault()立即阻止它,以便调用Ajax而不是常规的同步调用php文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41223900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档