簡體   English   中英

使用AJAX將Javascript字符串發送到PHP文件,然后從文件返回數組

[英]Using AJAX to send Javascript string to PHP file, then return array from file

我有一個彈出表單,用於選擇表格中的項目。 按順序,每行的表數據為:(用於選擇的復選框),架構名稱和表名稱。

這是用於獲取數據列表的查詢:

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下拉列表時,在顯示警告時得到了正確的值。

我需要做的是,當用戶從列表中選擇一個不同的架構(更改時)時,表將更新,僅顯示具有指定架構的表。 我一直在嘗試使用對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,您可以返回對象和數組。 如何將架構名稱發送到文件,以及如何從文件返回數組?

謝謝您的幫助!

如果您不熟悉該主題,請不要嘗試通過ajax進行此操作。 只需使用告訴頁面要加載內容的url var重新加載頁面即可。 table.php?id =用戶

一旦所有這些都無需ajax正常運行,您就可以在必要時添加該功能。

如果您想重新加載js,請參閱: http : //webdesign.about.com/od/examples/l/blfaqddredirect.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM