我有一个非常小的php脚本,其中有几个按钮,没有任何形式。当我按下一个按钮时,我希望根据要使用ajax发送的ID执行一个小的php脚本。

这些按钮如下所示:

<button onclick="deleteTask()" class="task" data-id="1">Task 1</button>
<button onclick="deleteTask()" class="task" data-id="2">Task 3</button>
<button onclick="deleteTask()" class="task" data-id="3">Task 4</button>
...


我有这个ajax函数:

function deleteTask() {
    var id=$(this).data("id");
    var dataString='id='+ id;

    $.ajax({
        type: "POST",
        url: "test.php",
        data: dataString,
        cache: false,
        success:function(html) {
            alert(html);
        }
    });
}


执行的PHP脚本只是一个测试:

$id = $_POST['id'];
echo "Response: " . $id;


结果是该警报框的响应为:

Response: undefined


我想要的是获取作为响应按下的按钮的数据ID。如果我用1按下data-id="1"按钮,我想得到"1"的响应。

最佳答案

在这种情况下,$(this)是窗口对象。

您可能正在考虑在jQuery事件处理程序的后面使用$(this)。当您执行类似$('#myElement').click(function() {...});的操作时,$(this)将代表已单击的元素。

您有理由不能做这样的事情吗?

<button onclick="deleteTask(1)">Task 1</button>
<button onclick="deleteTask(3)">Task 3</button>

<script>
function deleteTask(id) {
    var dataString='id='+ id;

    ...
}
</script>

关于php - Ajax在不刷新的情况下执行php-如何设置变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49439852/

10-12 07:29
查看更多