使用带有参数/ AJAX的按钮onClick调用PHP函数?

时间:2016-12-19 13:41:00

标签: php ajax function parameters

您好我想在用户点击按钮时调用我的功能下载,基本上是:

var fullname = "Anonymous User";
var today = new Date();
var search_term = { $and: [ { fullname: { $regex: "^" + fullname + "$", $options: 'i' } }, { date: { $lt: today } } ] };

当然不起作用,所以我尝试使用AJAX,我不知道这种语言,但是可以做我想做的事情:用2个参数调用我的PHP函数?< / p>

<input type='button' name='Release' onclick="document.write('<?php downloadFichier($tab1, $t2) ?>');" value='Click to Release'>

感谢您帮助我。

2 个答案:

答案 0 :(得分:3)

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

<input type='button' name='Release' onclick="downloadFichier(param1, param2)" value='Click to Release'>

你的AJAX功能应该是这样的:

function downloadFichier(param1, param2){

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

您可以通过名称(param1,param2)从$ _REQUEST数组中获取PHP脚本中的参数。

答案 1 :(得分:1)

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

<强> HTML

<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

$(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
    $tab1 = (isset($_POST['tab1'])) ? $_POST['tab1'] : null;
    $t2 = (isset($_POST['t2'])) ? $_POST['t2'] : null;

    // process & return json_encoded data
?>

如何运作?

点击按钮type="submit"时,它会触发其父submit的{​​{1}}事件。然后,jQuery监听此事件并立即使用form阻止它,以便调用Ajax而不是对php文件的常规同步调用。