2010-10-18 67 views
0

我正在使用jQuery UI自動填充,我對jQuery和JSON比較新。以下是我的代碼。我想知道是否可以在回調url中指定字段名稱和數據表名稱,以便後面的php文件抓取它。我有許多不同的名稱和ID需要自動完成的輸入框。每個輸入框都與MySQL中的不同列和數據表相關。所以我實際上想替換「SELECT * FROM projects where project_title REGEXP'。$ param'」;變成像「SELECT [列變量] FROM [數據表變量] WHERE [列變量] REGEXP'。$ param'」;在自動填充中傳遞mysql數據表名稱jsonp

非常感謝您提前。

阿布

<script type="text/javascript"> 
     $(function(){ 

      //attach autocomplete 
      $("#project-title").autocomplete({ 

       //define callback to format results 
       source: function(req, add){ 

        //pass request to server 
        $.getJSON("bin/test.php?callback=?", req, function(data) { 

         //create array for response objects 
         var suggestions = []; 

         //process response 
         $.each(data, function(i, val){         
          suggestions.push(val.name); 
         }); 

         //pass array to callback 
         add(suggestions); 
        }); 
       }, 
       minLength: 1, 


      }); 
     }); 

下面是test.php的文件

<?php 

include('../db.php'); 
$param = $_GET["term"]; 

//query the database 
$query = "SELECT * FROM projects WHERE project_title REGEXP '.$param'"; 
$res = connect($query); 
//build array of results 
for ($x = 0, $numrows = mysql_num_rows($res); $x < $numrows; $x++) { 
    $row = mysql_fetch_array($res); 

    $friends[$x] = array("name" => $row["project_title"]); 
} 

//echo JSON to page 
$response = $_GET["callback"] . "(" . json_encode($friends) . ")"; 
echo $response; 

?>

+0

一英里寬的洞,... – 2010-10-18 16:51:40

+0

謝謝你提醒我安全比搶多餘的值。我正在閱讀一篇文章,其中提到了一個簡單的解決方法,將autocomplete =「off」放入標記中。是否有意義?我怎樣才能讓它更安全?謝謝。 – Abu 2010-10-18 17:04:19

回答

-1

沒關係。我想到了。 我用過這樣的東西。

$.getJSON("bin/test.php?callback=?&table=projects&col=project_title", req, function(data) 

使用安全這個

$param = filter_input(INPUT_GET, 'term', FILTER_SANITIZE_STRING); 
$param_table = filter_input(INPUT_GET, 'table', FILTER_SANITIZE_STRING); 
$param_column = filter_input(INPUT_GET, 'col', FILTER_SANITIZE_STRING); 
+0

我還想知道如何讓它更安全。謝謝。 – Abu 2010-10-18 18:08:46

+0

這甚至不會幫你一點點 – 2010-10-18 18:14:24

+0

該頁面不公開。它有一個安全的登錄系統。我添加了no-cache頭和頭(「Content-Type:application/json; charset = utf-8」);我正在使用更安全的filter_input。如果你知道更多的方法,即使在那之後,我也很樂意聽到他們的聲音。謝謝 – Abu 2010-10-18 18:36:41