2010-03-04 37 views
1

我試圖過濾器/搜索數據庫使用Ajax

$.ajax({ 
    type: "POST", 
    url: "filterSearch.php", 
    queryString: qry, 
    success: function(data){ 
    alert("Data Saved: " + data); 
    $('#searchResult').html(data); // Fill the search results box 

    } 
}); 

現在filterSearch.php我有以下的測試代碼

if(isset($_POST['queryString'])) { 
    echo "TEST"; 
} 
if($_POST['runquery']==1) { 

$sql = "SELECT * FROM fs_vacatures WHERE here-the-like-query?"; 
$msg = $sql; 
echo $msg; 
die(); 
} 

die(); 

但也不TEST或$ sql是在警報中返回?

回答

1

$.ajax通話應該是這樣的:

$.ajax({ 
    type: "POST", 
    url: "filterSearch.php", 
    data: {queryString: qry}, 
    success: function(data){ 
    alert("Data Saved: " + data); 
    $('#searchResult').html(data); // Fill the search results box 

    } 
}); 

也就是說,你將需要通過使用data option的參數名稱和值。在你的例子中,你已經發明瞭一個叫做queryString的新選項,它不會使用jQuery。

1

閱讀關於.ajax()的文檔。有沒有參數queryString,你必須使用data

它應該是這個樣子,那麼:

data: {'queryString': qry, 'runquery': 1} 

更新:

好,要麼你用POST這樣:

$.ajax({ 
    type: "POST", 
    url: "filterSearch.php", 
    data: {'runquery': 1, 'name': 'sdaf', 'asdf': 'asdf'} 
    //... 
}); 

,然後你必須使用訪問參數,$_POST['name']

或者你用GET

$.ajax({ 
    type: "GET", 
    url: "filterSearch.php" + qry, // which results in 'filterSearch.php?runquery=1&name=sdaf&asfd=asd' 
    // ... 
}); 

,並通過$_GET['runquery']$_GET['name']訪問參數等

+0

tx,把所有我混淆了兩件事情。 $。員額VS $阿賈克斯和數據:VS的queryString: 將要測試的這一切 – alex 2010-03-04 12:16:03

+0

嗯,在QRY我有runquery = 1&NAME = SDAF&ASFD = ASDF 我想filterSearch會讀出runquery作爲一個變量? – alex 2010-03-04 12:25:28

+0

@alex:查看我更新的答案。 – 2010-03-04 12:47:57

0

,如果你使用jQuery嘗試用 「後」 在這裏你可以將後期參數添加爲鍵值對:

$.post("filterSearch.php", { "queryString": "theValueOfQueryString", "runquery" : 1 }, 
    function(data){ 
    alert("Data Saved: " + data); 
    $('#searchResult').html(data); // Fill the search results box 
    }); 

請參閱jquery for mor e信息

0

我更喜歡序列化方法。

$.ajax({url: "filterSearch.php", type: "POST", data: $("form").serialize(), 
    success: function(data){ 

    } 

});