我有一个弹出式表单,用于选择表中的项目。按顺序,每一行的表数据是:(用于选择的复选框)、模式名称和表名。
以下是用于获取数据清单的查询:
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。我对此知之甚少,也没有发现在线教程有多大帮助。
因此,我目前所做的就是将drop的值发送到一个PHP文件,获取一个数组,然后将其返回给Javascript。然后,我将从display表中删除所有行,并添加我传入的数组中的新值。
这是我到目前为止所得到的:
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的东西,你可以返回对象和数组。我如何将模式名发送到文件,以及如何从文件中返回数组?
谢谢你的帮助!
发布于 2013-07-11 22:24:15
如果您对该主题了解不多,请不要尝试通过ajax完成此操作。只需使用url重新加载页面,该变量将告诉页面加载的内容。table.php?id=users
在没有ajax的情况下,所有这些都正常工作后,如果需要,您可以添加该功能。
如果您想知道用于重新加载的js,请参阅:http://webdesign.about.com/od/examples/l/blfaqddredirect.htm
https://stackoverflow.com/questions/17594974
复制相似问题