我有一个弹出表单,用于选择表格中的项目。按顺序,每一行的表数据是:(用于选择的复选框)、模式名称和表名称。
这是用于获取数据列表的查询:
select table_schema, table_name
from information_schema.tables
order by table_schema, table_name
我如何创建表格清单:
<?php
$db = new mssql($_SESSION['serv'],$_POST['database'],$_SESSION['usr_n'],$_SESSION['pa ss']);
$db->query("
select table_name, table_schema
from information_schema.tables
order by table_schema, table_name
");
$tables = $db->getArray();
foreach($tables as $table)
{
print "<tr>";
print "<td><input type='checkbox' name='$table[TABLE_NAME]' class='checkbox' /></td>"; //Print Checkbox
print "<td style='padding: 5px; text-align: center;'>$table[TABLE_SCHEMA]</td>"; //Print Table Schema
print "<td>$table[TABLE_NAME]</td>"; //Print Table Name
print "<td><input type='hidden' name='$table[TABLE_NAME]_schema' value='$table[TABLE_SCHEMA]'></td>";
print "</tr>";
}
?>
我正在尝试添加过滤器。我想放置从上面的查询返回的所有不同模式的下拉列表。我已经使用以下方法完成了此操作:
<option value="%" selected>All Schemas</option>
<?php
$db = new mssql($_SESSION['serv'], $_POST['database'], $_SESSION['usr_n'],$_SESSION['pass']);
$db->query("
select distinct table_schema
from information_schema.tables
order by table_schema
");
$schemas = $db->getArray();
foreach($schemas as $schema) {
?>
<option value="<?php echo $schema['TABLE_SCHEMA'];?>"><?php echo $schema['TABLE_SCHEMA']?></option>
<?php
}
?>
这工作正常,当我访问 Javascript 中的下拉菜单时,我会在显示警报时获得正确的值。
我需要发生的是当用户从列表中选择不同的模式(onchange)时,表将更新,仅显示具有指定模式的表。我一直在尝试利用我对 Javascript 和 PHP 的有限知识来解决这个问题,但是在搜索了几个相关的问题之后,我了解到我需要使用 AJAX。我对此知之甚少,并且在网上找不到很有帮助的教程。
所以我目前坚持的是将下拉列表的值发送到 PHP 文件,取回一个数组,然后将其返回给 Javascript。然后我将从显示表中删除所有行,并从传入的数组中添加新值。
这是我到目前为止所得到的:
function updateList() {
var sch = document.getElementById("schList");
var xmlhttp;
if(window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if(xmlhttp.readyState==4 && xmlhttp.status==200) {
var table = xmlhttp.response
}
}
}
从这里我不知道。我读过一些叫做 JSON 的东西,你可以返回对象和数组。如何将模式名称发送到文件,以及如何从文件中返回数组?
谢谢您的帮助!