Передача строки в функцию
PHP:
header('Content-type:text/html; charset=utf-8');
$str=150;
$json=json_encode($str);
<html>
<head>
<script>
str=eval(<?=$json?>)
function func(str)
{
alert(str)
}
</script>
</head>
<body onload="func(str);">
</body>
</html>
Этот код прекрасно работает. Теперь если переменной $str присвоить не число, а строку, например $str='hello', то код работать не будет. Насколько я понимаю, причина в том, что значение атрибута тега <body> onload обрамляется кавычками. Вопрос: как можно передать строку в качестве параметра функции в данном случае? |
eval('(' + <?=$json?> + ')')
|
Работать он не будет из-за eval'а.
alert(eval('hello'))
Цитата:
|
Да точно.
Смысл вообще таким образом использовать json_encode? |
ваый,
Может не строку, а массив переделывать в json ?
header('Content-type:text/html; charset=utf-8');
$str= array('hello');
$json=json_encode($str);
<html>
<head>
<script>
str=eval(<?=$json?>)
function func(str)
{
alert(str[0])
}
</script>
</head>
<body onload="func(str);">
</body>
</html>
|
В том-то и вопрос: зачем тут json вообще, если вы просто строку передаете. Зачем json, зачем eval. Если надо передать более сложную структуру, то да, json. А так..
|
Может строка это всего лишь для примера))) Тут уже автор должен сказать конкретно что ему надо))
|
Цитата:
Да, конечно, передается массив из строковых элементов, а точнее координаты дорог ломаных в закодированном виде для яндекс карт. Строковую переменную я привел для простоты |
Цитата:
|
Мда, слов много, а до сути никто не дошёл. Главный вопрос: зачем здесь eval?
|
| Часовой пояс GMT +3, время: 12:34. |