This sample demonstrates how to use the DynAPI to create a 100% DHTML-based ComboBox with images.

 

 

Here's how this project works:

<script language="JavaScript">
    var nc;
    var cmbSelected = -1;
    var cmbOp = new Array();
    var cmbOpI = new Array();

    var idx = 0;
    var tbi;

    dmbAPI_Init();
    dmbAPI_addGroup("Products");
    tbi = dmbAPI_getItemByCaption("selItem");
    dmbAPI_setOnClick(tbi, "Products", '', true, 0);

<?
    mysql_connect("localhost","db_user","db_password");
    mysql_select_db("xfx_soft_data");

    $q = mysql_query("select * from products;");
    $t = mysql_num_rows($q);

    $i = 0;
    while($i < $t) {
?>
        cmbOp[idx] = "<? echo mysql_result($q, $i, "Name"); ?>";
        cmbOpI[idx] = "<? echo mysql_result($q, $i, "Icon"); ?>";
        if(cmbOpI[idx]=="") cmbOpI[idx] = "blank.gif";
        nc = dmbAPI_addCommand("Products", cmbOp[idx]);
        dmbAPI_setImageLeftNormal(nc, "/menu/images/" + cmbOpI[idx], 16, 16);

        dmbAPI_setOnClick(nc, "javascript:cmbSelect(" + idx + ")");
        idx++;
<?
        $i++;
    }
?>

    function cmbSelect(n) {
        var j;
        for(var i=0; i<idx; i++) {
            j = dmbAPI_getItemByCaption(cmbOp[i], mFrame, "Products");
            if(i==n)
                dmbAPI_setColor(j, "#FFFFFF", "#0000FF", "#FFFFFF", "#0000FF");
            else
                dmbAPI_setColor(j, "#000000", "#FFFFFF", "#FFFFFF", "#0000FF");
            }
        dmbAPI_setCaption(tbi, cmbOp[n]);
        dmbAPI_setImageLeftNormal(tbi, "/menu/images/" + cmbOpI[n]);

        cmbSelected = n;
    }
    cmbSelect(0);
</script>