我一直在寻找一种在执行onclick函数时将一些数据更新到数据库中的方法。
想法是更新包含单词“ Active”的按钮的值,并且在执行onclick时喜欢将mysql更新为“ Inactive”
这是按钮:
$register_status = '<button class="btn btn-success btn_status btn-block" data-status="Active">Active</button>';
如何给数据变量,以便我们可以使用$ _POST在PHP中获取它?数据变量的以上表示显示错误。
scripts.js
$(document).ready(function(){
$('body').click('.btn_status', function(e){
var button = jQuery(e.target);
if(button.data('status') == 'Active'){
var data = {id:id, register_status:Inactive};
$.ajax({
type: "POST",
dataType: "json",
url: "ajax/updateStatus.php",
data: data,
success: function(data) {
alert("update!");
}
});
}else if(button.data('status') == 'Inactive'){
alert("nothing");
}
});
})
ajax / updateStatus.php
include("db_connection.php");
if(isset($_POST))
{
$id = $_POST['id'];
$register_status = $_POST['register_status'];
$query = "UPDATE `users` SET `register_status` = '$register_status' WHERE `id` = '$id'";
if (!$result = mysqli_query($db,$query)) {
exit(mysqli_error());
}
}
更新:
这是另一个要删除的功能。此功能运行正常。
function DeleteUser(id) {
$.post("ajax/deleteUser.php", {
id: id
},
function (data, status) {
readRecords();
}
);
}
deleteUser.php
<?php
if(isset($_POST['id']) && isset($_POST['id']) != "")
{
include("db_connection.php");
$user_id = $_POST['id'];
$query = "DELETE FROM users WHERE id = '$user_id'";
if (!$result = mysqli_query($db,$query)) {
exit(mysqli_error());
}
}
?>
单击什么时候可以删除:
<li onclick="DeleteUser('.$row['id'].')"><a href="#">Delete</a></li>
但是,这似乎不起作用。如果有更好的方法来做我上面提到的事情。谢谢
参考方案
根据示例,您将需要进行一些更改:
的JavaScript
$(function(){
function updateStatus(id, st){
$.post("ajax/updateStatus.php", {"id": id, "register_status": st}, function(data, status){
console.log("Update Success", data, status);
readRecords();
});
}
$('body').on('click', '.btn_status', function(e){
var button = $(this);
updateStatus(1001, (button.data("status") === "Active" ? "Inactive" : "Active"));
});
});
首先,使用click()
并不是最好的方法。使用.on()
会更好,因为它可以处理任何新的或动态创建的项目。
该脚本将要求在某处定义id
。 AJAX需要将id信息发送到PHP。您发布的代码没有显示此内容,因此我不确定它的值应该是多少。
PHP(updateStatus.php)
include("db_connection.php");
if(isset($_POST['id'])){
$id = (int)$_POST['id'];
$register_status = ($_POST['register_status'] == "Inactive" ? "Inactive" : "Active");
$query = "UPDATE `users` SET `register_status` = '$register_status' WHERE `id` = '$id'";
if (!$result = mysqli_query($db,$query)) {
exit(mysqli_error());
}
}
这些更新可以帮助防止SQL注入。我建议使用Prepared Statements进一步阻止它。
更新资料
如果您要的按钮将是这样的:
<button onclick="ChangeStatus('.$row['id'].') class="btn btn-success btn_status btn-block" data-status="Active">Active</button>
注意,这只是从PHP传入ID
。如果这些项目始终为“有效”,那么可以,您可以使用以下方法进行操作:
function ChangeStatus(id){
$.post("ajax/updateStatus.php", {id: id}, function(data, status){ console.log(status, data)});
}
与PHP类似:
<?php
if(isset($_POST['id']) && $_POST['id'] != ""){
include("db_connection.php");
$user_id = (INT)$_POST['id'];
$query = "UPDATE `users` SET `register_status` = 'Inactive' WHERE `id` = '$user_id'";
if (!$result = mysqli_query($db,$query)) {
exit(mysqli_error());
}
}
?>
希望这可以帮助。
如何从php中获取datatables jQuery插件的json数据 - php我是PHP的新手,正在尝试使用Datatables jQuery插件。我知道我必须从.php文件中获取数据,然后在数据表中使用它,但是我似乎无法通过ajax将其传递给数据表。我设法从数据库中获取数据,并对其进行json编码,但是后来我不知道如何在我的index.php文件中调用它,并在其中显示它。我究竟做错了什么?这是我的代码:HTML(已编辑): <…
PHP JQuery复选框 - php我有以下片段。 var myData = { video: $("input[name='video[]']:checked").serialize(), sinopse: $("#sinopse").val(), dia: $("#dia").val(), quem: $(…
PHP-正则表达式删除引号并添加大括号? - php好吧,我不愿承认这一点,但是我对REGEX感到很困难,我永远找不到关于如何设置表达式的不错的教程。所以说我有这样的事情context['something'] 我想将所有事件更改为context[something] 那我有' . $var . ' 我想将所有事件更改为{var} 这是当前的概念,但是我在正则表达式部分…
PHP:将元素ID作为哈希添加到Facebook共享链接 - php在this page上,我有一堆显示为精美框的mp3文件。每个框都有一个Facebook分享按钮。我想将每个框ID((mp3jWrap_0, mp3jWrap_1等)作为哈希添加到其Facebook共享链接,以便每次从Facebook访问共享项目时,URL都包含该项目的哈希。为此,我编写了代码:<?php $actual_link = (isset($…
PHP:将数据从二维数组复制到一维数组的最快方法 - php我有一个巨大的二维PHP数组,带有500万行。$t = [ [ "id" => 1, "name" => "foo" ], [ "id" => 2, "name" => "bar" ] ]; 现在,我必须将此数组的I…