Re: [PHP] PHP arrays and javascript

2004-11-30 Thread Nick Peters
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

2004-11-30 Thread Nick Peters
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

2004-11-29 Thread Hodicska Gergely
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

2004-11-29 Thread Marek Kilimajer
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

2004-11-29 Thread Nick Peters
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

2004-11-26 Thread Marek Kilimajer
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

2004-11-26 Thread Pablo Gosse

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