我正試圖根據用戶複選框選擇來在PHP頁面內顯示可過濾的MySQL數據。我有一個域名數據庫,這些數據庫需要根據Nominet DAC信息進行續訂,我可以得到未過濾的數據,但通過域名擴展過濾結果對我來說很難完成。在這個階段,我應該指出,我很想在這裏學習與我一起學習的許多想法,這是一個認真的新手,所以請溫和。我也嘗試過在這裏的其他文章,但沒有骰子。AJAX過濾器使用複選框的MySQL結果
我見到目前爲止以下內容:
HTML
<input type="checkbox" class="extensions" name="extensions" value=".co.uk">.co.uk</input>
<input type="checkbox" class="extensions" name="extensions" value=".org.uk">.org.uk</input>
腳本
$('.extensions').live('click', function() {
var all_boxes = $('.extensions');
var all_boxes_values = [];
var i = 0;
for (var i; i < all_boxes.length; i++) {
if (all_boxes[i].checked) {
all_boxes_values.push(all_boxes[i].value)
}
}
var all_boxes_values_clean = all_boxes_values.join(", ");
console.log(all_boxes_values_clean);
$.get("sql-test.php", {q: all_boxes_values_clean},
function(result) {
$("div#output").html(result);
}
)});
PHP
$g = $_GET['q'];
$extensionsql="";
$extension=1;
if(isset($g)) {
$extension=1;
$param = "" . str_replace(",", "','", $_GET['q']) . "";
}
這就是據我已經與我的限制得到能力。接下來我想要搜索列名domainName以進行字符串匹配,並將適當的結果返回給用戶。有些模仿以下內容,但我不知道如何實現它。任何幫助,將不勝感激:
SELECT * FROM `refresh` WHERE `domainName` LIKE '%.co.uk%' AND renewalDate LIKE '%2012-06-30%' ORDER BY `domainName` ASC
由於
+1,但'而(名單($鍵,$值)=每($ G))'是這麼早PHP 4時代,夥計。使用[foreach](http://php.net/manual/en/control-structures.foreach.php):) – goat
謝謝@Waygood。我已將while(list ...)轉換爲現在的foreach,但腳本在運行時返回SQL錯誤:或者您的SQL語法中有錯誤;請查看與您的MySQL服務器版本對應的手冊,以獲取正確的語法請在第1行使用'ORDER BY ORDER BY domainName ASC'附近。您是否能夠建議爲什麼會出現這種情況?再次感謝您的幫助 – keepitnang