功能结果在列表框中

时间:2013-02-21 16:46:58

标签: php list

为了尽可能地在我的页面中保持PHP代码与html分离,我正在尝试创建一个可用于填充其他页面上的列表/下拉框的函数。   使用msqli,我查询了我的表“acc_vat_rates!并选择了我感兴趣的两个字段,”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”,这不是我要求的。我只希望发布“id”以包含在DB中。

我已经在这里度过了一段时间,所以任何帮助都会受到赞赏。 谢谢... 大卫

2 个答案:

答案 0 :(得分:0)

你可以改变你的while循环并删除foreach:

while ($rowvat= $resultsvat->fetch_assoc()){
    echo '<option value="'.$rowvat['vat_rate_id'].'">'.$rowvat['vat_rate_name'].'</option>';
}

答案 1 :(得分: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;)