PHP在Ajax中传递参数

时间:2014-11-25 20:16:54

标签: php jquery ajax

在我的PHP文件中,我有一个变量$file = "abc"。如何在HTML中创建一个按钮来在PHP中运行函数作为参数传递$ file?我看到我需要使用jQuery / AJAX来做到这一点。为简单起见,我们只想说我想回复$ file。

HTML / JS

<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.js"></script>
<input type="submit" class="button" name="Del" value="Del" />
<script type="text/javascript">
$(document).ready(function(){
    $('.button').click(function(){
        var clickBtnValue = $(this).val();
        var ajaxurl = 'ajax.php',
        data =  {'action': clickBtnValue};
        $.post(ajaxurl, data, function (response) {
            console.log(response);
            //alert("action performed successfully");
        });
    });

});
</script>

ajax.php

<?php
if (isset($_POST['action'])) {
    Del();
}

function Del($file) {
    echo $_POST['action'];
    echo $file;
    exit;
}
?>

我不确定如何修改它以通过AJAX传入php参数($ file)。

2 个答案:

答案 0 :(得分:2)

在您的HTML / JS中:

data =  {'action': clickBtnValue, 'file' : '<?php echo $file?>'};

在你的ajax.php中:

if (isset($_POST['action'])) {
    Del($_POST['file']);
}

这是一个非常简单的示例,但您可以根据自己的需要进行调整。请注意,这种方法存在大量潜在的安全隐患,具体取决于您实际执行的操作,因此请小心并清除$ _POST中的任何输入。

答案 1 :(得分:0)

你可以将值传递给<span id="myFile"></span>,你可以在结束</body>标记之前放置,然后使用jQuery获取值,然后立即将其删除。我并不是说它是最好或最安全的方法,但它过去曾为我做过简单的事情。

HTML

    ...
    <span id="myFile"><?php echo $file; ?></span>
</body>
    ...

JS

$(document).ready(function(){

    $('.button').click(function(){

        //Get the text and remove it
        var myFile = $("#myFile").text();
        $("#myFile").remove();

        var clickBtnValue = $(this).val();
        var ajaxurl = 'ajax.php',
        data =  {action: clickBtnValue, file: myFile};
        $.post(ajaxurl, data, function (response) {
            console.log(response);
            //alert("action performed successfully");

            //Append it back in case you need to use it again. Optional
            $("body").append("<span id='myFile'></span>");
        });
    });
});

我从action中删除了引号。

PHP

<?php
    if (isset($_POST['action'])) {
        Del($_POST['file']);
    }

    ...
?>