- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的应用程序中,我想通过使用 bootstrap toggle plugin 更改样式为切换的复选框的状态,将 MySQL 数据库中保存为 TINYINT [0,1] 的 bool 状态更改为 TINYINT [0,1] 。哇...真是太拗口了。
诀窍是我希望 TINYINT 在后台更新,并且页面刷新不可见。我一直试图通过 AJAX 解决这个问题。我可以检查切换的状态并可以 console.log 状态更改,但我无法让 AJAX 部分实际执行到我的toggle_track.php 页面的 POST,这将更新数据库。我对任何想法持开放态度,并且愿意尝试几乎任何事情。
现在,查看代码示例:
main.php
<input id="toggle-event" type="checkbox" data-toggle="toggle" data-on="On" data-off="Off">
<div id="console-event"></div>
<script type="text/javascript">
$(function() {
$('#toggle-event').change(function() {
console.log('state checked: ' + $(this).prop('checked'));
if($(this).prop('checked')) {
var visible = 1;
} else {
var visible = 0;
}
console.log('variable checked: ' + visible);
var xhttp;
if (window.XMLHttpRequest) {
// code for modern browsers
xhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
console.log('browsers checked: ' + xhttp);
// xhttp.onreadystatechange = function() {
// if (this.readyState == 4 && this.status == 200) {
// document.getElementById("demo").innerHTML = this.responseText;
// }
// };
xhttp.open("POST","../private/dynamic/toggle_track.php?visible="+visible,true);
console.log('Open: ' + xhttp.open);
xhttp.send();
console.log('POST run');
})
})
</script>
toggle_track.php
<?php
require_once('../initialize.php');
?>
<script type="text/javascript">
window.alert('made it');
</script>
<?php
if(isset($_POST['visible'])) {
$incident['visible'] = $_POST['visible'];
$incident_id = $_SESSION['incident_id'];
// update the entire associative array in the db.
$result = update_incident($incident_id);
if($result === true) { // Check to see if the UPDATE was successful.
// Yes, the UPDATE was successful.
// load a message to be displayed.
// $step_updated = 'Incident: ' . $incident['id'] . ' was updated. Step #' . $step['id'] . ' was added. The array should now show: ' . $sa_load;
// $ans_updated = ' and the answer for #' . $step['id'] . ' was added. The array should now show: ' . $ans_load;
}
// No, the UPDATE failed.
else {
// load message to show what failed.
$errors = $result;
} // end else
}
?>
query_functions.php在上面的 require_once('../initialize.php');
语句中与数据库建立连接后:
function update_incident($incident) {
global $db;
$sql = "UPDATE incidents SET ";
$sql .= "visible='" . db_escape($db, $incident['visible']) . "', ";
$sql .= "note='" . db_escape($db, $incident['note']) . "', ";
$sql .= "resolved='" . db_escape($db, $incident['resolved']) . "', ";
$sql .= "step_array='" . db_escape($db, $incident['step_array']) . "',";
$sql .= "ans_array='" . db_escape($db, $incident['ans_array']) . "',";
$sql .= "lastStep='" . db_escape($db, $incident['lastStep']) . "',";
$sql .= "valid='" . db_escape($db, $incident['valid']) . "' ";
$sql .= "WHERE id='" . db_escape($db, $incident['id']) . "' ";
$sql .= "LIMIT 1";
$result = mysqli_query($db, $sql);
// For UPDATE statements, $result is true/false
if($result){
return true;
} else {
//UPDATE failed
echo mysqli_error($db);
db_disconnect($db);
exit;
}
}
我希望这个代码段足以解释我的想法,以帮助得出答案。
最佳答案
如果我的理解正确的话,你没有在toggle_track.php上得到你的帖子,对吗?你的想法是正确的,但我会这样:
在main.php上
//Same code until console.log();
//Not really needed in this case to be sent in an array, but I kinda like it :P
var dataToSend = {
visible: visible
};
//Sending data using jQuery AJAX
$.ajax({
url: 'toggle_track.php', //Where to
type: "POST", //Method
data: dataToSend, //The array I created with the "visible" variable
//A success function, for when the CONNECTION WITH THE URL was succesfull
success: function (response) {
//If COMMUNICATION was successful (Doesn't mean it went all right)
},
//An error function, for when the CONNECTION WITH THE URL
//wasn't succesfull (couldn't be found, etc)
error: function(response){
//If COMMUNICATION had an error
}
});
})
})
</script>
抱歉,如果我没有正确解释自己,英语不是我的母语。我会尽力回答您的任何问题。
关于php - Bootstrap Toggle 使用 AJAX 无需刷新页面即可更改 MySQL TINYINT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47024239/
这个问题已经有答案了: Where has fn.toggle( handler(eventObject), handler(eventObject)...) gone? (4 个回答) 已关闭10
有没有直接的使用方法--toggle和 --no-toggle使用 Python 的 argparse 标记? 现在我正在使用类似于以下内容的东西: import argparse parser =
我正在尝试实现 jquery UI 切换功能。 这是我目前所拥有的: http://jsfiddle.net/PauWy/470/ 我试图做到这一点,当我点击 Item1 时,会出现“+”和“-”,我
现在 toggle(...) 是 deprecated in jQuery 1.8然后removed in jQuery 1.9 在常规中可以使用什么(除了使用 jQuery 迁移脚本)来代替具有相同
我在使用 bootstrap 的切换功能时遇到问题。 这个想法是让一个复选框(引导切换)打开或关闭第二个复选框(引导切换)。遗憾的是,它尚未在网页上运行。我注意到,通过删除“data-toggle='
我有一些 DIV,我正在使用 JQuery 使用 toggle() 函数来隐藏和显示它们。这一直运行良好。 但我只是认识到其中一些 DIV 之间的一些关系,这使我可以将其中一些 DIV 分组到一个类中
我想要三个 SwiftUI 切换开关,如果一个打开,另外两个关闭。 使用 UIKit 执行此类操作的旧方法是 didSet{},这不是 SwiftUI 的正确方法。我不知道是否有必要深入研究Combi
我想做的是:当达到一定数量的页面滑动时,使网站的顶部栏向下切换。即,当用户向下滑动 328px 时,顶部栏向下滑动并固定在顶部。 问题是当用户向下滑动到328px的时候,top bar div就开始上
上下文 我正在使用 Bootstrap 主题,现在我注意到,当主题更新到 Bootstrap 5 时,所有 data-toggle 属性都被替换为 data-bs-toggle (除了一个,哪个元素仍
我有一个来自 Bootstrap 示例的“标准”测试导航栏,但是使用 active_links gem导航栏 => 品牌 - 关于 - 第 1 页 - 第 2 页 - 页面(第 3 页 - 第 4 页
我只是无法理解 Eclipse 中菜单的 Run 按钮下的两个选项。通常断点不是指一行吗?我意识到可能存在这种情况: if (x >= 0 && x = 0 && y < 4) source
如果有任何反馈或见解可以帮助我解决我面临的最后一个问题,我将不胜感激。我的代码很庞大。 我有 4 个开关。打开时的每个切换都会导致标签增加 1。当我关闭并重新打开应用程序时,我还设法保存了切换位置和标
我目前正在开发一个侧边栏菜单,在该菜单中我切换类别上的“选定”类别,该类别的类别名称为“sidebar-category”。 使用 jQuery,我可以轻松实现我想要的目标:切换“选定”类后(如果我单
我正在尝试玩周围的游戏,但我对 jquery 完全是新手!所以我确实需要一些帮助:) $(function() { $('#switch').on('click', function(
所以我需要下面的当前脚本,以便能够切换。 目前,该脚本仅在按住 F8 键时起作用...这违背了 afk 脚本的要点。哈哈 无论如何,这是脚本: $F8:: Loop { if not Get
在创建 jQuery 下拉菜单时,我遇到了一个最奇怪的问题 - 已隐藏的元素仍然影响页面。为什么会发生这种情况,我该如何解决?它通过阻止按钮的一部分来影响功能,迫使人们从未阻止的部分调用该功能。例如;
我有一个 Logo ,当单击菜单时,字母 T 和 H 以及字母 animatie 彼此相距约 400px。当他们制作动画时,导航会出现:eas-in,但是当我再次单击汉堡菜单时,我希望导航以相同的动画
我正在尝试为“事件”CSS 类切换“禁用”,以使某些 SVG 的填充属性在单击时发生变化。 我能够正确更改第一个元素,但是当尝试对第二个和第三个 SVG 进行相同更改时,它会更改第一个 div 中第一
我有一个小的下拉列表,其中包含从 0 到 4 的数字(我可以添加更多),例如数字 4 是 4 年的数据。如果我选择 4,我会得到 4 行日期选择器,供用户选择开始和结束日期。 它使用 for 循环,并
我有几个 powershell 函数,可以执行诸如检查程序是否打开然后关闭之类的操作。或者,如果程序关闭,该函数将打开它。这些函数被恰本地命名为Toggle-Something。我在 Windows
我是一名优秀的程序员,十分优秀!