2011-01-04 14 views
0

私は数週間、この1つのトピックに取り組んでいます。私はMsSQLサーバーから情報を引き出すWebページを作成しています。私の問題は、チェックボックスがほとんどないセクションがあるところです。 チェックボックスは、SQLデータベースにチェックが入っている場合にチェックされます。 借り手が「貯蓄」、「確認」、「在庫」から資金を使用した場合、これらのチェックボックスはHTMLページでチェックする必要があります。私の場合は、SQL検索リストの最初の行にあるものだけをチェックしています。したがって、リストに最初の行に「保存」がある場合は、「保存」チェックボックスのみがチェックされ、残りのリストはリストには表示されません。私はループ(while($ r-> EOF))を使ってみましたが、リストの終わりにあるものはすべて取り出します。ここでは、SQLサーバーからデータを取得するために使用しているものを示します。ご協力いただきありがとうございます。心から感謝する! HTMLウェブページでPHP + MsSQL =チェックボックスの問題。助けが必要!

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 

、以下のコードは出力に応じてボックスをマークチェックする必要があります:それは最初の行の一つですので

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

答えて

2

表示する前に、あなたの結果を通過するループを追加します。フラグを設定します。 $ 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(); 
} 

あなたのビューには、フラグを確認してください。私はスマイリーを使用していないが、テンプレートにそれらのフラグを渡す必要がありますが、私はあなたが知っていると確信して、各フラグが真/偽であるかどうかをチェックするチェックボックスの行を変更します。

希望に役立ちます!

+0

彼はそうです。データベースから列を引っ張っている場合、結果は配列に戻ります。列ごとに1つの項目が返されます。つまり、1つの列だけを引っ張っている場合、結果行はその1つの列を含む1つの項目の配列になります。 複数の行(各行は複数の列を持つ配列)を取得するには、結果から行を引く必要があります。 – dqhendricks

+0

返信とコードとdqhendricksのためのフレッドリー、本当に感謝していただきありがとうございます。私はあなたの提案を使用しようとしています。これまで私はそれが動作するように幸運ではなかった。私は一度私はsitutationのより多くの理解を持って投稿します。はい、私はsmartyとadodbを使用しています。 – user3116474

関連する問題