Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

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

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

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

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

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

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

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

 

 

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

Надіслати
Поділитися на інших сайтах


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 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.