我将checkbox
选项存储在一个数组中然后拆分每个数组并使用AJAX发布它们,以便我的PHP
函数可以使用发布的id/ids
来查询我的MySQL
数据库中。
我的JavaScript的第一部分
$('#tbl_list').click(function (event) {
var tbls = new Array();
$("input:checkbox[name='tbl[]']:checked").each(function () {
tbls.push($(this).val());
});
var tbl = tbls.join('|');
alert(tbl);
这第一部分按预期工作,每当我点击checkbox
时,该值都会被警告。
AJAX帖子
$.ajax({
type: "POST",
url: "index.php",
data: "tbl=" + tbl
});
});
最后我的PHP
function describeTables() {
if (isset ( $_POST ['tbl'] )) {
$tbl = $_POST ['tbl'];
echo $tbl;
}}
即使我只选择一个选项,我也不会获得tbl
的任何声明。这是为什么????
修改 我的复选框
function showTables() {
if (isset ( $_GET ['db'] )) {
$db = $_GET ['db'];
$link = mysqli_connect ( 'localhost', 'root', '', $db );
$qry = "SHOW tables";
$tbl_list = mysqli_query ( $link, $qry );
echo '<ul>';
while ( $row = mysqli_fetch_array ( $tbl_list ) ) {
echo '<input type="checkbox" name="tbl[]" class="tbl_list" value="' . $row [0] . '" class="tablebox" />';
echo $row [0];
echo '<br>';
}
}
}
showTables ();
第二次编辑
建议后我修改了我的代码,但现在有一个新问题,页面无法加载#dbdisplay
下面是我的完整JS代码
if (!location.search.match(/db=[^&#]+/i)) {
$("#dbdisplay").show();
} else {
$("#qryDisplay").show();
}
$(document).on("change", ".checkbox", function () {
var db = $(this).val();
window.sessionStorage.setItem("db", db);
window.location.assign("index.php?db=" + db);
$("#dbdisplay").hide();
});
$('#tbl_list').click(function (event) {
var tbls = new Array();
$("input:checkbox[name='tbl[]']:checked").each(function () {
tbls.push($(this).val());
});
var tbl = tbls.join('|');
//alert(tbl);
$.ajax({
type: "POST",
url: "index.php",
data: {'tbl': tbl }
});
});
旧功能
/*
$(document).on("change", ".tablebox", function () {
var tbls = new Array();
$("input:checkbox[name='tbl[]']:checked").each(function () {
tbls.push($(this).val());
});
var tbl = tbls.join('|');
var yourDB = window.sessionStorage.getItem("db");
window.location.assign("index.php?db=" + yourDB + '&tbl=' + tbl);
});
*/
我该如何解决这个问题?
答案 0 :(得分:0)
在ajax调用中,数据必须是对象data: {'tbl': tbl}
答案 1 :(得分:0)
您应该将“{}”用于数据
$.ajax({
type: "POST",
url: "index.php",
data: {'tbl' : tbl}
});
或
$.ajax({
type: "POST",
url: "index.php&tbl="+tbl
});
答案 2 :(得分:0)
你的ajax调用中的第一件事,数据必须是对象
data: {'tbl': tbl}
其次Ajax不能直接调用php函数 所以你的index.php文件应该没有函数
if (isset ( $_POST ['tbl'] )) {
$tbl = $_POST ['tbl'];
echo $tbl;
}
答案 3 :(得分:0)
这应该是工作
$.ajax({
type: "POST",
url: "someurl",
data: {"tbl=" + tbl}
});
http://api.jquery.com/jquery.getjson/
请参阅此处了解文档