PHP + MsSQL = Checkbox问题。需要帮忙!

时间:2011-01-04 17:12:48

标签: php mysql smarty

我几周来一直在研究这个话题。我正在创建一个从MsSQL服务器中提取信息的网页。我的问题是哪个部分的复选框很少。 如果在SQL数据库中找到它们,则应该检查复选框。 如果借款人使用“储蓄”,“检查”和“股票”中的钱,则应在HTML页面中检查这些复选框。在我的情况下,它只检查SQL搜索列表的第一行上的任何内容。因此,如果列表在第一行上有“正在保存”,则只会选中“保存”复选框,而不会检查列表中的其余部分。我尝试使用循环(while($ r-> EOF)),但随后它选择了列表末尾的任何内容。这是我用来从SQL服务器提取数据的方法。预先感谢您的帮助。真的很感激!

function __construct($_ldid, $_lrid)

            $this->ldid = $_ldid;
            $this->lrid = $_lrid;

//$loan is defined in the PHP.class (which is shown below). 

$q = ("SELECT * FROM Tabel_name where loan_id = 885775")
$v = array($_ldid, $_lrid); 
$r = $db->Execute($q, $v); 
$this->downpaymenttype = $r->fields; //<- I think I have this line done wrong because it is suppose to store the outputs to an array. 

//So wherever the "$loan" is in HTML page, it will take the outputs from the above statement.

//The above code, which is in PHP.class file, outputs the following(or suppose to):
1    885775    Checking
2    885775    Saving
3    885775    Gift

在HTML网页中,以下代码应根据输出选中标记框:

<input type="checkbox" name="DPS1[]" id="DPS1-{$key}" {if $loan-> downpaymenttype.downpaymentsource == "Checking"} checked {/if}/> 

<input type="checkbox" name="DPS2[]" id="DPS2-{$key}" {if $loan-> downpaymenttype.downpaymentsource == "Saving"} checked {/if}/> 

<input type="checkbox" name="DPS3[]" id="DPS3-{$key}" {if $loan-> downpaymenttype.downpaymentsource == "Gift"} checked {/if}/> 

仅检查“检查”复选框,因为这是第一行的那个。

我也尝试循环,但它不存储在数组中(我想我不知道如何使用数组进行会话)

$q = ("SELECT Tabel_name FROM loan_downpaymentsource where loan_id = 885775"); 
$v = array($_ldid, $_lrid)); 
$r = $db->Execute($q, $v); 
while(!$r->EOF) { 
$this->downpaymenttype = $r->fields; 
$r->MoveNext(); 
} 

1 个答案:

答案 0 :(得分:2)

在显示和设置标志之前添加循环以完成结果。 $ r-&gt;字段只会抓取当前行的字段。您需要遍历整个行集以查看其他行集是否已设置。

类似的东西(看起来你正在使用adodb或类似的东西)

$checking = false;
$saving = false;
$gift = false;

while(!$r->EOF){
    $row = $r->fields;
    switch($row->downpaymenttype){
        case 'Checking':
            $checking=true;
            break;
        case 'Saving':
            $saving=true;
            break;
        case 'Gift':
            $gift=true;
            break;
        default:
        break;
    }
    $r->moveNext();
}

现在在你的视图上检查标志。我没有使用过smarty,但你必须将这些标志传递给你的模板以及我确定你知道,然后更改你的复选框行来检查每个标志是否为true / false。

希望有所帮助!