Welcome to WebmasterWorld Guest from 54.205.251.179

Forum Moderators: coopster & jatar k

Message Too Old, No Replies

Problem with echo

   
9:26 pm on Oct 23, 2010 (gmt 0)



I'm trying to make a select box on my site where the options are determined by a previous selection. To do this I want to populate a javascript array with information from a flat file database. One enrty in the array is a list of options. I've exploded the info from the database into PHP arrays, but I can't seem to get them into JS arrays properly. Basically when I use echo, the output comes out different from what I would expect and I can't figure out why!

My code:

echo "<script language=\"javascript\">\n
var cat2list=new Array();\n
cat2list[0]=\"\";\n";


for($k=1;$k<=3;$k++){
echo"cat2list[$k]=[";

for($i=0;$i<sizeof($cat2optionlist[$k]);$i++){
if ($i==sizeof($cat2optionlist[$k])-1){
echo "\"".$cat2optionlist[$k][$i][0]."|".$cat2optionlist[$k][$i][1]."\"]\n";}
else{
echo "\"".$cat2optionlist[$k][$i][0]."|".$cat2optionlist[$k][$i][1]."\", ";}
}
}

echo "</script>\n";


The resulting output is:

<script language="javascript">

var cat2list=new Array();

cat2list[0]="";
cat2list[1]=["Client 3|", "|3", "Client 2|", "|2", "Client 1|", "|1"]
cat2list[2]=["Client 6|", "|6", "Client 5|", "|5", "Client 4|", "|4"]
cat2list[3]=["Client 9|", "|9", "Client 7|", "|7", "Client 8|", "|8"]
</script>


But I need it to look like this:

cat2list[1]=["Client 3|3", "Client 2|2", "Client 1|1"]
cat2list[2]=["Client 6|6", "Client 5|5", "Client 4|4"]
cat2list[3]=["Client 9|9", "Client 7|7", "Client 8|8"]


WHAT AM I DOING WRONG?!
7:09 am on Oct 24, 2010 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Honestly, I'd say the whole approach is problematic.

If you can simply represent the data produced/retrieved by your PHP script in an array, then you can transform it to json [google.com] in one step using PHP's json_encode() function [php.net] (and if you check Example 2 on that page, you'll find you have considerable flexibility in how the JSON object is renedered).

-- b
12:33 pm on Oct 25, 2010 (gmt 0)

5+ Year Member



It would really help if you posted what your data array actually looks like. I'm pretty sure it can be solved quickly.
10:45 pm on Oct 27, 2010 (gmt 0)



I figured it out, my cat2optionlist array was not constructed properly.

Thanks to anyone who tried to help. Sorry to waste your time.