JS/jQuery将$_POST信息传递给PHP脚本


JS/jQuery passing $_POST information to PHP script

这可能是一件简单的事情,但我花了太多时间试图让它发挥作用,但没有成功。

基本上我有以下引导按钮:

<div class="bs-example">
    <div class="btn-group" data-toggle="buttons">
        <label title="This will display" class="btn btn-lg btn-info">
        <input type="radio" name="toDo" id="toDo" value="enableSSH"> Enable SSH
    </label>
    <label class="btn btn-lg btn-info">
        <input type="radio" name="toDo" id="toDo" value="migrateDB"> Migrate Database
    </label>
</div>

我在页面下方有以下按钮,我需要使用上面选择的值:

<button id="submit" class="btn btn-default" type="button">Go!</button>

当点击该按钮时,它会触发以下jQuery功能:

$("#submit").click(function(){
    var buttonValue = $('#toDo').val();
    var phpfile = "submit.php";
    var data =  {'action': buttonValue};
    $.post(phpfile, data, function (response) {
        alert("Data has been submitted successfully);
    });
});

这应该将所选单选按钮的结果传递给这个PHP脚本:

<?php
if (isset($_POST['action'])) {
    switch ($_POST['action']) {
        case 'enableSSH':
            alert("enableSSH has been selected");
            break;
        case 'migrateDB':
            alert("migrateDB has been selected");
            break;
    }
}
?>

jQuery函数中的数据已提交的警报会正确显示,但PHP脚本中确认数据已传递的警报不会显示。

很抱歉发了这么长的帖子。请帮忙。

PHP中没有警报,它是一种无处警报的服务器端语言。

解决方案是将一些东西返回到ajax调用,而不是

<?php
    if (isset($_POST['action'])) {
        switch ($_POST['action']) {
            case 'enableSSH':
                echo "enableSSH has been selected";
                break;
            case 'migrateDB':
                echo "migrateDB has been selected";
                break;
        }
    }
?>

你会得到它作为回应

$.post(phpfile, data, function (response) {
    alert("Data has been submitted successfully");
    alert(reponse); // alert it here instead
});