我正试图根据用户复选框选择来在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