0

私のページでphpコードをhtmlからできるだけ分離するために、他のページのリスト/ドロップダウンボックスにデータを入力するために使用できる関数を作成しようとしています。msqliを使用して、テーブル「acc_vat_rates!」を照会し、関心のある2つのフィールド「vat_rate_id」と「vat_rate_name」を選択しました。次に、結果をループして、$vatratearrayという配列にデータを入力します。

<?php 

function vat_rates(){
    $conn = new mysqli("192.168.1.81", "root", "", "cloudoneaccountsdb");
$queryvat = "SELECT vat_rate_id,vat_rate_name FROM acc_vat_rates ORDER BY vat_rate_id";
$resultsvat = $conn->query($queryvat);
//SET UP AN ARRAY NOW
$vateratearray = array();
while ($rowvat= $resultsvat->fetch_assoc())
    $vatratearray[] = $rowvat['vat_rate_id']." "." ". $rowvat['vat_rate_name'];
//print_r($vateratearray);

foreach($vatratearray as $key => $value)
//echo "<p>{$value} <?br></p>";
echo '<option value="'.$value.'">'.$value.'</option>';
}

?>

この関数は「global_functions.php」というページに保存され、他のページに含まれます。上記はすべて正常に機能します。次に、関数「function vat_rates()を他のページのリストボックスのオプション値として使用します。これが私の問題の始まりです。関数がリストボックスにデータを入力すると、record_idと名前が並べて表示されますが、これは問題ありませんが、選択した行を投稿すると、必要なものではない「id」と「name」も投稿されます。DBに含めるために「id」のみを投稿したい。

私はかなり長い間これに参加してきましたので、どんな助けもいただければ幸いです。ありがとう...デビッド

4

2 に答える 2

0

これを試して:

 while ($rowvat= $resultsvat->fetch_assoc())
        {

            array_push($vatratearray, 
              array('vat_rate_id' => $rowvat['vat_rate_id'], 
                    'vat_rate_name' => $rowvat['vat_rate_name']

              ));

        }    

        foreach($vatratearray as $key => $value)
        {
        echo '<option value="'.$value['vat_rate_id'].'">'.$value['vat_rate_id'].'  '$value['vat_rate_name'].'</option>';
        }

このコードは大幅に改善できます。whileループ内にオプションを作成することもできます。他の答えと同じようにXD

Saludos;)

于 2013-02-21T17:11:11.620 に答える
0

whileループを変更して、foreachを削除するだけです。

while ($rowvat= $resultsvat->fetch_assoc()){
    echo '<option value="'.$rowvat['vat_rate_id'].'">'.$rowvat['vat_rate_name'].'</option>';
}
于 2013-02-21T17:10:27.967 に答える