我有一個彈出窗體,用於選擇表中的項目。按順序,每行的表數據爲:(複選框供選擇),模式名稱和表名。使用AJAX發送Javascript字符串到PHP文件,然後從文件返回數組
這裏是用於獲取數據的上市查詢:
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的東西,並且你可以返回對象和數組。我如何將模式名稱發送到文件中,以及如何從文件中返回數組?
感謝您的幫助!
@ s_qw23請不要鏈接到W3Schools的,他們是邪惡的。 –