下拉依赖于其他下拉列表ajax

时间:2012-09-04 17:38:54

标签: php

我想根据使用PHP的第一个下拉列表进行下拉列表。我此刻已经到了这里,但它不起作用。

我正在尝试让用户首先从第一个下拉列表中选择一个值。按“执行”按钮。然后出现第二个下拉列表。

当按下第二个GO按钮(从下拉列表2)时,必须显示包含数据的表格。这就是名为get_latest_prices的函数

function show_products( $attrs )
{
    global $wpdb;

    $products = get_products();

    $type = get_types();

    $html .= get_cluetip_js();

创建第一个下拉列表:

    $html.="<form>
    <select name='type' id='type' autocomplete='off'>
    <option value=''>--Select Type--</option>
    ";

从数据库获取数据         if($ _GET ['type'])                 $ selected_type = $ wpdb-&gt; escape($ _ GET ['type']);

    foreach($type as $typ)
    {
            if($typ['type']==$selected_type)
                    $selected = ' selected ';
            else
                    $selected = ' ';

            $typ['type'] = trim( $typ['type'] );

            if( !$typ['type'] )
                    continue;

显示所选的下拉菜单行:

            $html.="<option $selected value='{$typ['type']}'>{$typ['type']}     </option>\r\n";
    }

$html.="
    </select>
    <br/>
            <input type='submit' value='Go'>
    </form>";


    $html.= '<script type="text/javascript">
$(function () {
    $("#product").ufd({log:true});
    $("a.deeplink").cluetip();

});
</script>
';

选择行并提交表单后,再添加第二个下拉菜单:

if($selected_type)
    {
    $html.="
    </select>
    <br/>
    <select name='product' id='product' autocomplete='off'>
    <option value=''>--Select Product--</option>
    ";

从数据库获取第二个下拉列表中的数据。 $ products变量选择另一个将查询产品标题和cat的函数。并在第一个下拉列表中选择类型。

    if( $_GET['product'] )
            $selected_product = $wpdb->escape($_GET['product']);

    foreach($products as $prod)
    {
            if($prod['ID']==$selected_product)
                    $selected = ' selected ';
            else
                    $selected = ' ';

            $prod['Title'] = trim( $prod['Title'] );
            $prod['Cat'] = trim( $prod['Cat'] );

            if( !$prod['Title'] || !$prod['Cat'] )
                    continue;

            $html.="<option $selected value='{$prod['ID']}'>{$prod['Title']} - ({$prod['Cat']})</option>\r\n";
    }
            $html.="
    </select>
    <br/><input type='submit' value='Go'>
    </form>";


    $html.= '<script type="text/javascript">
$(function () {
    $("#product").ufd({log:true});
    $("a.deeplink").cluetip();

});
</script>
';

//  return $html;

提交第二个表单时,会调用一个名为get_latest_prices的函数。此函数使用下拉2中选择的数据绘制一个包含数据的表。

    if($selected_product)
    {
            $html.=get_latest_prices($selected_product);
    }

    return $html;
}
return $html;   
}

当从第二个表单提交go按钮时没有任何反应。没有页面加载,没有刷新,没有错误。有任何想法吗?转换为AJAX是一种选择,但需要在整个脚本中进行大量的返工。

0 个答案:

没有答案