Re: [PHP] PHP arrays and javascript
Hodicska Gergely wrote: > Hi! > > > Would this work the same for multidimensional arrays? > Encoding was a special feature needed by me, maybe you don't need it. > Usage: > myArray = array(...); > echo ''.arrayToJsArray($myArray, 'myArray').''; > > Felho > > --- 8< --- arrayToJsArray.php --- 8< --- > function valueToJsValue($value, $encoding = false) > { > if (!is_numeric($value)) { > $value = str_replace('\\', '', $value); > $value = str_replace('"', '\"', $value); > $value = '"'.$value.'"'; > } > if ($encoding) { > switch ($encoding) { > case 'utf8' : > return iconv("ISO-8859-2", "UTF-8", $value); > break; > } > } else { > return $value; > } > } > > function arrayToJsArray( $array, $name, $nl = "\n", $encoding = > false ) { > if (is_array($array)) { > $jsArray = $name . ' = new Array();'.$nl; > foreach($array as $key => $value) { > switch (gettype($value)) { > case 'unknown type': > case 'resource': > case 'object': > break; > case 'array': > $jsArray .= arrayToJsArray($value, > $name.'['.valueToJsValue($key, $encoding).']', $nl); > break; > case 'NULL': > $jsArray .= $name.'['.valueToJsValue($key, > $encoding).'] = null;'.$nl; > break; > case 'boolean': > $jsArray .= $name.'['.valueToJsValue($key, > $encoding).'] = '.($value ? 'true' : 'false').';'.$nl; > break; > case 'string': > $jsArray .= $name.'['.valueToJsValue($key, > $encoding).'] = '.valueToJsValue($value, $encoding).';'.$nl; > break; > case 'double': > case 'integer': > $jsArray .= $name.'['.valueToJsValue($key, > $encoding).'] = '.$value.';'.$nl; > break; > default: > trigger_error('Hoppa, egy új típus a PHP-ben? > '.__CLASS__.'::'.__FUNCTION__.'()!', E_USER_WARNING); > } > } > return $jsArray; > } else { > return false; > } > } > ?> > --- 8< --- arrayToJsArray.php --- 8< --- thanks this works perfect! -- -Nick Peters -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] PHP arrays and javascript
Hodicska Gergely wrote: > trigger_error('Hoppa, egy új típus a PHP-ben? > '.__CLASS__.'::'.__FUNCTION__.'()!', E_USER_WARNING); on that line, what is the error you are trying to catch? I can't read what ever language that is ;-) thanks. -Nick Peters -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] PHP arrays and javascript
Hi! > Would this work the same for multidimensional arrays? Encoding was a special feature needed by me, maybe you don't need it. Usage: myArray = array(...); echo ''.arrayToJsArray($myArray, 'myArray').''; Felho --- 8< --- arrayToJsArray.php --- 8< --- function arrayToJsArray( $array, $name, $nl = "\n", $encoding = false ) { if (is_array($array)) { $jsArray = $name . ' = new Array();'.$nl; foreach($array as $key => $value) { switch (gettype($value)) { case 'unknown type': case 'resource': case 'object': break; case 'array': $jsArray .= arrayToJsArray($value, $name.'['.valueToJsValue($key, $encoding).']', $nl); break; case 'NULL': $jsArray .= $name.'['.valueToJsValue($key, $encoding).'] = null;'.$nl; break; case 'boolean': $jsArray .= $name.'['.valueToJsValue($key, $encoding).'] = '.($value ? 'true' : 'false').';'.$nl; break; case 'string': $jsArray .= $name.'['.valueToJsValue($key, $encoding).'] = '.valueToJsValue($value, $encoding).';'.$nl; break; case 'double': case 'integer': $jsArray .= $name.'['.valueToJsValue($key, $encoding).'] = '.$value.';'.$nl; break; default: trigger_error('Hoppa, egy új típus a PHP-ben? '.__CLASS__.'::'.__FUNCTION__.'()!', E_USER_WARNING); } } return $jsArray; } else { return false; } } ?> --- 8< --- arrayToJsArray.php --- 8< --- -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] PHP arrays and javascript
Nick Peters wrote: Marek Kilimajer wrote: Nick Peters wrote: Hey, i know this probally a simple question, but it has been stumping me for quite some time now. How do i pass a php array to a javascript? i tryed: var myarray = new Array(); but it didn't work. Anybody got any ideas? thanks in advance. For integers and floats: var myarray = new Array(); For strings: var myarray = new Array(); Would this work the same for multidimensional arrays? no -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] PHP arrays and javascript
Marek Kilimajer wrote: > Nick Peters wrote: >> Hey, >> >> i know this probally a simple question, but it has been stumping me for >> quite some time now. How do i pass a php array to a javascript? >> >> i tryed: >> >> var myarray = new Array(); >> >> >> but it didn't work. Anybody got any ideas? >> >> thanks in advance. > > For integers and floats: > > var myarray = new Array(); > > For strings: > > var myarray = new Array( ?>); Would this work the same for multidimensional arrays? -- -Nick Peters -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] PHP arrays and javascript
Nick Peters wrote: Hey, i know this probally a simple question, but it has been stumping me for quite some time now. How do i pass a php array to a javascript? i tryed: var myarray = new Array(); but it didn't work. Anybody got any ideas? thanks in advance. For integers and floats: var myarray = new Array(); For strings: var myarray = new Array(); -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] PHP arrays and javascript
i know this probally a simple question, but it has been stumping me for quite some time now. How do i pass a php array to a javascript? i tryed: var myarray = new Array(); but it didn't work. Anybody got any ideas? You need to generate the javascript array from your PHP array. Example: In your script create a php array of the values you wish to use. Using indeces is not essential. If you do not use them, you can just use a counter var when you loop through the array to create the indeces for the JS array. 'item 1', 'second index'=>'item 2', 'third index'=>'item 3'); $jsVar = "var myArray = new Array();\n"; foreach ($arrayVar as $idx=>$val) { $jsVar .= "myArray['{$idx}'] = {$val}\n"; } ?> The final output of this will be: var myArray = new Array(); myArray['first index'] = 'item 1'; myArray['second index'] = 'item 2'; myArray['third index'] = 'item 3'; HTH, Pablo -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php