Перейти к содержимому


Вопрос как передать переменную из php в javascript


  • Вы не можете ответить в тему
Сообщений в теме: 4

#1 markell

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 108 сообщений
Репутация: 22
Ассистент

Отправлено 01 December 2012 - 09:52 AM

Есть index.php В нем строчка:
$smarty->assign('2url',$u);
В шаблоне r1.tpl есть javascript :
{literal}
<script type="text/javascript">
2url = "<?PHP echo $2url; ?>"; <!-- пробовал и так, ничего нет -->
VK.init({apiId:XXX});
VK.api('users.get', {uids: 2url, fields: 'photo'}, function(data) {
alert(data.response[0].photo);
});
</script>
{/literal}

Подскажите,как мне значение переменной $u передать в javascript?
  • 0

#2 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 01 December 2012 - 10:45 AM

2url = {/literal}{$2url}{literal}
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#3 markell

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 108 сообщений
Репутация: 22
Ассистент

Отправлено 04 December 2012 - 01:39 PM

2url = {/literal}{$2url}{literal}

Спасибо, помогло. Если что, нашел еще одну свою ошибку - нельзя что бы имя (название) переменной начиналось с цифры.

У меня еще появился один вопрос, я не стал создавать новую тему т.к. является продолжением первого вопроса.
В index.php следующий код:
$smarty->assign('T2DO',$today);
$smarty->assign('T2DO_SIZE',$j);
$smarty->assign('2url',$u);

В шаблоне r1.tpl:
{literal}
<script type="text/javascript">
function Checkphoto() {
var d_url = "{/literal}{$2url}{literal}";
var s = '';
VK.init({apiId:XXX});
VK.api('users.get', {uids: d_url, fields: 'photo_medium'}, function(data) {
for (res in data.response) {
document.getElementById('user'+res.toString()).innerHTML='<img src="'+data.response[res].photo_medium+'">';
}
});}
</script>
{/literal}
<table cellspacing="0" border="1" cellpadding="0" width="100%">
<tr>
{foreach item=TASK2 from=$T2DO}
<td><center><div id="user"></div></center>
</td>
{/foreach}
</tr>
</table>

Помогите, как ввести в цикле всех userов ?
  • 0

#4 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 04 December 2012 - 05:06 PM

В общем случае заменить <div id="user"> на <div id="user{$TASK2.userID}">, где userID содержит то же самое, что ПОТОМ будет получено скриптом в res.toString(). Если список userID в момент обработки шаблона шаблонизатором (т.е. перед отдачей браузеру) еще не известен, то приведенным способом - никак. Ведь на момент разворота цикла в HTML в id= еще нечего прописывать. Присвойте id= элементу <tr> и пишите в его innerHTML тем же циклом for яваскрипта HTML-код "<td>.....</td>" c нужным содержимым.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#5 markell

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 108 сообщений
Репутация: 22
Ассистент

Отправлено 05 December 2012 - 07:02 PM

Пробовал, ничего не получилось. Проблему разрешил с помощью $smarty.foreach.name.index
  • 0