Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Как перенести данные из PHP в JS?


 Поделиться

Рекомендованные сообщения

Собственно есть шаблон,

В нём есть замечательная функция "перезвоните мне".

Мне нужно сделать одну из двух вещей:

1) перенести переменную <?php echo $product['product_id']; ?> их PHP в JS,

2) просто получить в самом JS адрес страницы, на которой произошло действие.

Как вы уже поняли, с помощью этой маленькой хитрости кнопка "перезвоните мне" превратиться в "быстрый заказ".

К сожалению с джаваскрипт опыта большого нет, поэтому прошу прощения, если мой вопрос очень глупый.

 

 

Проблемы и не  было, оказывается. Всё и так корректно работало...

Ссылка на комментарий
Поделиться на других сайтах


есть поле

<input type="hidden" value="NNN" size="2" name="product_id">

Ссылка на комментарий
Поделиться на других сайтах

1) или (как у chukcha) забрать с input или 

<script type="text/javascript"><!--
 var product_product_id = <?php echo json_encode($product['product_id']); ?>;
//--></script>

P.S. а то нехорошо оставлять, на нашем форуме, тему без решения )

Ссылка на комментарий
Поделиться на других сайтах

Раз уж тут такая тема. Есть некий скрипт внутри шаблона модуля, в котором задействованы пхп вызовы. Можно ли такой скриптик вынести во внешний файл и передавать ему значение тех пхп переменных? Все хочу у себя повытаскивать все инлайн скрипты в отдельные файлы и подгружать только там, где нужно.

Ссылка на комментарий
Поделиться на других сайтах


Для примера взял часть из xml'ки бесплатного модуля и поскипал часть простынки из кода.

<script>
$(function(){
var i = (!!$("#livesearch").length ? $("#livesearch") : $("<ul id='livesearch'></ul>") ), s = $("#header [name=search]");
function repositionLivesearch() { i.css({ top: (s.offset().top+s.outerHeight()), left:s.offset().left, width: s.outerWidth() }); }
$(window).resize(function(){ repositionLivesearch(); });
s.keyup(function(e){
switch (e.keyCode) {
 
поскипано
 
if (query.length > 2) {
$.getJSON(
"<?php echo HTTP_SERVER; ?>?route=product/search/livesearch&search=" + query,
function(data) {
i.empty();
$.each(data, function( k, v ) { i.append("<li><a href='"+v.href+"'><img src='"+v.img+"' alt='"+v.name+"'><span>"+v.name+"</span></a></li>") });
i.remove(); $("body").prepend(i); repositionLivesearch();
}
);
} else {
i.empty();
}
}
}).blur(function(){ setTimeout(function(){ i.hide() },500); }).focus(function(){ repositionLivesearch(); i.show(); });
});
</script>
 
Там есть такая чтучка как <?php echo HTTP_SERVER; ?>. Когда выносил этот инлайн скрипт в отдельный файл, то банально прописал вмето этого адрес сайта. Но есть более сложные модули, в которых этих пхп вставок внутри js кода больше.
Ссылка на комментарий
Поделиться на других сайтах


Для примера взял часть из xml'ки бесплатного модуля и поскипал часть простынки из кода.

<script>
$(function(){
var i = (!!$("#livesearch").length ? $("#livesearch") : $("<ul id='livesearch'></ul>") ), s = $("#header [name=search]");
function repositionLivesearch() { i.css({ top: (s.offset().top+s.outerHeight()), left:s.offset().left, width: s.outerWidth() }); }
$(window).resize(function(){ repositionLivesearch(); });
s.keyup(function(e){
switch (e.keyCode) {
 
поскипано
 
if (query.length > 2) {
$.getJSON(
"<?php echo HTTP_SERVER; ?>?route=product/search/livesearch&search=" + query,
function(data) {
i.empty();
$.each(data, function( k, v ) { i.append("<li><a href='"+v.href+"'><img src='"+v.img+"' alt='"+v.name+"'><span>"+v.name+"</span></a></li>") });
i.remove(); $("body").prepend(i); repositionLivesearch();
}
);
} else {
i.empty();
}
}
}).blur(function(){ setTimeout(function(){ i.hide() },500); }).focus(function(){ repositionLivesearch(); i.show(); });
});
</script>

 

Там есть такая чтучка как <?php echo HTTP_SERVER; ?>. Когда выносил этот инлайн скрипт в отдельный файл, то банально прописал вмето этого адрес сайта. Но есть более сложные модули, в которых этих пхп вставок внутри js кода больше.

 

 

Выход выноса скриптов с php вставками переменных есть: прописываете (модулем) где-то что-то типа такого на странице в любом месте

        <noindex>
            <div class="container_vars" style="display: none">
                <div id="container_vars_product_id" class="product_id"><?php echo $product_id; ?></div>
            </div>
        </noindex>

Выносите скрипт в отдельный файл, а там берете переменную (переменные) в стиле:

var product_id = $('#container_vars_product_id').html();

Можете вообще автоматизировать подгрузку переменных

Приблизительно так вынес код JS в отдельный файл своего модуля и читаю переменные php таким методом

load_vars = function (this_data) {
    var avars = {};
    avars['product_id'] = $('#' + $(this_data).closest('div[id] .container_vars').attr('id')).find('.product_id:first').text();
...

И пользуетесь массивом переменных документа через php во внешнем JS файле

Это уменьшает размер документа и JS файла загружается из кеша браузера.

Получается унификация

Ссылка на комментарий
Поделиться на других сайтах

Ещё один вариант:

window.MyApp = {
  value1: '<?php echo $var1; ?>',
  value2: '<?php echo $var2; ?>'
}

Получить доступ к этим данным будет возможно из любого места.

console.log(MyApp.value1);
Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.