使用AJAX运行SQL语句并填充下拉菜单

时间:2012-08-08 作者:bobthemac

我试图创建一个搜索,用户从数据库中选择两个不同的数据位,然后打印出一些符合要求的结果。我知道我需要使用AJAX或类似的东西,但我不知道应该怎么做。第一个下拉框工作正常,因为它不依赖于任何内容。下面是代码:

<select name="raceTrack2" onchange="">
    <?php $postids = $wpdb->get_col("
        SELECT trackName 
        FROM " . $trackTableName . ";
    ");             
    foreach ($postids as $value) {
        echo \'<option>\' . $value . \'</option>\' ;
    } ?>
</select>
这很好用。下一步就是开始变得复杂。现在,我需要获取第一个选择框的值并将其添加到下一个选择框的SQL查询中,然后在第一个选择框更改时使用onchange.

<select name="raceDate">
    <?php $postids2 = $wpdb->get_col("
        SELECT DISTINCT raceDate 
        FROM " . $tableName . " 
        WHERE trackName = \'" . $track . "\';
    ");
    foreach ($postids2 as $value2) {
        echo  $value2  ;        
    } ?>
</select>
然后,我需要获取这两个下拉列表的值,并在最终查询中使用它们来显示结果:

$postids = $wpdb->get_results("
    SELECT driverName, driverClass, driverPosition 
    FROM " . $tableName . "
    WHERE trackName = \'" . $track . "\' AND raceDate = " . $date . ";
");
foreach ($postids as $value) {
    echo \'<tr valign="top">\';
    echo \'<td>\' . $value->driverName . \'</td>\';
    echo \'<td>\' . $value->driverClass . \'</td>\';
    echo \'<td>\' . $value->driverPosition . \'</td>\'; 
    echo \'</tr>\';
}
如有任何建议,将不胜感激。

1 个回复
SO网友:woony

您在这里给出了自己的解决方案。使用onchange 事件,或.change jquery API中的事件。

否则,这称为“级联”下拉列表。

此外,我认为这与wordpress没有任何关系。类似this question

结束

相关推荐

Use ajax to update_post_meta

2天前我问this 然后,我尝试编写代码,以便能够理解ajax和php是如何工作的,现在我有了一个新问题,这个问题可能很容易解决。以下是我的代码:<?php /* Template Name: Nuovo form */ ?> <html> <head> <script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js\