对于我的选择框切换,我需要预先构建一个选择选项值的JavaScript数组,通过使用php来生成负载上的js数组。我直到现在通过创建一个对象并将其添加到一个数组中,但现在我需要其中一个对象的属性是一个数组。我很近(对象的clientForm属性将返回一个csv列表,如果我document.write它),但我不认为它是一个数组,因为我无法访问length属性和以前的document.write不输出阵列。任何人都可以发现我做错了什么或建议一种替代方法吗?创建一个客户端阵列
这里是一个输出的Javascript数组的PHP(我已经建立了系统的CodeIgniter):
echo '<script type="text/javascript">';
$array = 'var companies = new Array();';
$i = 0;foreach($clientList as $client) :
$array .= 'arrayItem'.$i.' = {clientNo:"'.$client->client_id.'", clientCompany:"'.$client->client_company_name.'", clientRef:"'.$client->client_ref_no.'", clientForms: Array(';
if($client->client_forms != "")
{
$a = 0; foreach($client->client_forms as $form) :
$array .= $form.", ";
++$a; endforeach;
}
$array = substr($array, 0, -2);
$array .= ')};';
$array .= 'companies['.$i.'] = arrayItem'.$i.'; ';
++$i; endforeach;
echo $array;
echo '</script>';
这里是电流输出:
<script type="text/javascript">
var companies = new Array();
arrayItem0 = {clientNo:"1", clientCompany:"Test1", clientRef:"UG123HS", clientForms: Array(1, 15)};
companies[0] = arrayItem0;
arrayItem1 = {clientNo:"2", clientCompany:"Test2", clientRef:"UF321HS", clientForms: Array(17)};
companies[1] = arrayItem1;
</script>
如果你想看看,这里是jsfiddle上的完整输出代码(jsfiddle似乎无法让我的onclicks工作,但他们在实际的网页上)。
谢谢!
创建通常的PHP数组,然后json_encode它。我认为这会容易得多。 –
'json_encode'ing是最好的解决方案,因为它似乎... ...为它 –