0

我有这个代码:

<script>
var values = <?php
$sql="SELECT * FROM billing_sagenominalcodes order by code ASC";
$rs=mysql_query($sql,$conn) or die(mysql_error());
$nominalcodes = array();
while($result=mysql_fetch_assoc($rs))
{
    $nominalcodes[] = $result['code'];
}
echo json_encode($nominalcodes);
?>;
</script>

<select name="sagenominalcode" id="sagenominalcode">
<script>addOptions(document.getElementById('sagenominalcode'), values);</script>
</select>

它完全按照我的需要工作,但我想知道是否可以在选择选项以及代码中显示数据库中的列名“名称”?

例如,而不仅仅是

123

像这样

123 - 名称

4

1 回答 1

0

你会想要严格地分开你的 php 和你的 js。编写代码的方式将按原样工作,但非常脆弱,并且可能会发生灾难性的破坏,从而导致远距离操作风格的错误。

例如,如果您的数据库架构被重构以删除该code列,那么您的 javascript 将被破坏,其原因是没有人会怀疑的。


也就是说,如果您还想name在选择选项的列中显示数据,您还必须将该数据传递到其中$nominalcodes。现在,它包含一个索引数据数组(可能是 anint或 a string),但您需要更改它,使其包含一个索引数组。

所以,之前:

$nominalcodes = array(1,3,5,78,3,2,234);

之后:

$nominalcodes = array(
    array(1, 'foobar'),
    array(3, 'larry'),
    array(5, 'bob'),
    ...
);

此时,您必须重构您的 javascriptaddOptions函数,以便它可以正确解析数组数组,而不是单个值数组。

于 2013-03-21T00:27:27.340 回答