PHP + MsSQL = 复选框问题。需要帮忙!

标签 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}/> 

只有“正在检查”复选框被选中,因为它位于第一行。

我也试过循环,但它没有存储在数组中(我想我不知道如何使用数组进行 session )

$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(); 
} 

最佳答案

在显示和设置标志之前添加一个循环来检查您的结果。 $r->fields 只会获取当前行的字段。您需要遍历整个行集以查看是否设置了其他行集。

类似的东西(看起来你正在使用 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();
}

现在在您的 View 中检查标志。我没有使用过 smarty,但你必须将这些标志传递给你的模板,我相信你知道,然后更改你的复选框行以检查每个标志是否为真/假。

希望对您有所帮助!

关于PHP + MsSQL = 复选框问题。需要帮忙!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4596383/

相关文章:

php - 无法向mysql插入数据但没有显示错误消息

php - Smarty 可以只读取一个 block 而不是模板吗?

php - HTML5 日期时间本地显示 01-01-1970 01 :00 When its empty

mysql - mysql 出错时的总和情况

php - 我有一个带有 JQuery 的表单,一旦提交两次就会刷新页面(当用户出现错误时)

php - 文件上传 Ajax PHP

php - 在 block 输出上应用 Smarty 修改器

php - 如何在smarty中找到foreach循环的最后一个索引

php - 如何按照插入顺序在页面上显示不同的 mysql 表行

php - 如何将当前时间戳添加到图像路径中