Форум русской поддержки Joomla!® CMS
05.12.2016, 22:43:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Переменные JavaScript и PHP (подгрузка шаблона)

 (Прочитано 984 раз)
0 Пользователей и 1 Гость смотрят эту тему.
CaHeK_pk
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 119


« : 03.08.2015, 07:43:03 »

Всем добрый день, почти доработал нужное расширение и на завершающем этапе попал в тупик.
имеется файл java.js
Код
   //Запуск показа купонов на странице товара
     $("#seller-coupon").click(
     function updateInfo() {
 var link1 = document.getElementById("sc-result-body").getAttribute('data_show');
if (link1 == 1)
{
// alert("равно 1");
var userName = '<?php echo $load; ?>';
document.getElementById('sc-result-body').innerHTML = userName; //Должно отправиться в PHP
}
else
{
console.log('ajax');
$('#sc-result-body').load('/default_coupons_dealer.php');
$('#sc-result-body').attr('data_show', '1');
}
    }
);
  // конец показа купонов на странице товара
 
и код php от VirtueMart
Код
<?php $load = $this->loadTemplate("coupons_dealer");  //данная переменная должна отправиться в JS
?>
<span id="seller-coupon" data-widget-cid="widget-24" style="display: inline;">
<a class="store-promotion-item"  onClick="toggle(sellercouponresult)">
Получить купон предзаказа на <b><?php echo $k .'%' ?></b><span class="ui-arrow ui-arrow-right"></span><i class="store-coupon-bg"></i></a>
<div id="sellercouponresult" data_show="0" style="display: none;">
<div id="sc-result-body" data_show="0">
<!-- Здесь должна появиться переменная с JS -->
</div>
<a href="javascript:;" class="ui-close" onClick="closes(sellercouponresult)"> close </a>
</div>
</span>
 
Записан
Fedor Vlasenko
Профи
********

Репутация: +696/-5
Offline Offline

Пол: Мужской
Сообщений: 3820


Все начинается с Value


« Ответ #1 : 03.08.2015, 23:37:58 »

CaHeK_pk это плохой стиль написания кода смешивая Js c jQuery вы получаете винегрет
Код
    $("#seller-coupon").click(function () {
           if ($("#sc-result-body").attr('data_show') == 1) {
               $('#sc-result-body').html(<?php echo $load; ?>); //Должно отправиться в PHP? здесь вы задаете HTML этому элементу
           }
           else {
               console.log('ajax');
               $('#sc-result-body').attr('data_show', '1').load('/default_coupons_dealer.php');
           }
       }
   );
 
Записан
CaHeK_pk
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 119


« Ответ #2 : 09.08.2015, 16:31:33 »

б
CaHeK_pk это плохой стиль написания кода смешивая Js c jQuery вы получаете винегрет
Код
    $("#seller-coupon").click(function () {
           if ($("#sc-result-body").attr('data_show') == 1) {
               $('#sc-result-body').html(<?php echo $load; ?>); //Должно отправиться в PHP? здесь вы задаете HTML этому элементу
           }
           else {
               console.log('ajax');
               $('#sc-result-body').attr('data_show', '1').load('/default_coupons_dealer.php');
           }
       }
   );
 
благодарю, помогло. не спорю на счет венигрета, новичек еще:) только попался еще один подводный камень, данный скрипт делался для того что бы данный шаблон (<?php echo $load; ?>) не читался при загрузке страницы, а читался при клике на "#seller-coupon", т.к в этом шаблоне идет запись в базу данных купонов. Сейчас получается что сколько раз заходили на страницу товара\обновляли, идут записи на новые купоны, и такими темпами база как пузырь надуется скоро:) Благодарю заране, может у вас будет идея как это лучше организовать:)
Записан
Fedor Vlasenko
Профи
********

Репутация: +696/-5
Offline Offline

Пол: Мужской
Сообщений: 3820


Все начинается с Value


« Ответ #3 : 09.08.2015, 16:45:09 »

мы же не знаем содержимого вашего  $load;
по крайней мере вы можете его(контент) подгружать с помощью AJAX или вставлять с помощью шаблонизаторов js
Код
<script id="hello" type="text/template">
   Hello world
</script>
<script>
   alert(hello.innerHTML);
</script>
 
Записан
CaHeK_pk
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 119


« Ответ #4 : 09.08.2015, 16:53:54 »

мы же не знаем содержимого вашего  $load;
по крайней мере вы можете его(контент) подгружать с помощью AJAX или вставлять с помощью шаблонизаторов js
Код
<script id="hello" type="text/template">
   Hello world
</script>
<script>
   alert(hello.innerHTML);
</script>
 
немного не понял....
сейчас при загрузке страницы, не нажимая ничего, скрипт имеет такой вид (просмотр исходного кода страницы)
Код
     	     $("#seller-coupon").click(function () {
           if ($("#sc-result-body").attr('data_show') == 0) {
               $('#sc-result-body').html(<p>Ваш Код купона<p>18419); //хотя эта инфа должна быть отображена после клика
           }
           else {
               console.log('ajax');
               $('#sc-result-body').attr('data_show', '1');
           }
       }
   );
 
 
Записан
Fedor Vlasenko
Профи
********

Репутация: +696/-5
Offline Offline

Пол: Мужской
Сообщений: 3820


Все начинается с Value


« Ответ #5 : 09.08.2015, 17:18:05 »

вы должны по клику делать AJAX запрос с спомощью любого удобного метода jQuery (ajax, load, post, get ...) и получать данные с сервера
на сервере должна быть точка входа которая будет отвечать на ваш запрос и в ответ отдавать новый номер купона
здесь также много реализаций от лучщей к худшему
1. Контроллер
2. Отдельная точка входа файл
3. Плагин обрабатывающий onAfterInitialise
4. Файл в папке вашего шаблона с вызовом к примеру test.php лежит в папке вашего шаблона и возвращает номер
Код
$.post('/?tmpl=test', function(res){/* you code */});
Записан
CaHeK_pk
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 119


« Ответ #6 : 09.08.2015, 18:54:11 »

вы должны по клику делать AJAX запрос с спомощью любого удобного метода jQuery (ajax, load, post, get ...) и получать данные с сервера
на сервере должна быть точка входа которая будет отвечать на ваш запрос и в ответ отдавать новый номер купона
здесь также много реализаций от лучщей к худшему
1. Контроллер
2. Отдельная точка входа файл
3. Плагин обрабатывающий onAfterInitialise
4. Файл в папке вашего шаблона с вызовом к примеру test.php лежит в папке вашего шаблона и возвращает номер
Код
$.post('/?tmpl=test', function(res){/* you code */});
я понимаю что глупые вопросы задаю, но у меня голова просто кругом уже идет) подскажите если вам не сложно что именно не так (хотя мне кажется все тут не так)
Код
spnoConflict(function($){
$(document).ready(function() {
  //Запуск показа купонов на странице товара
     $("#seller-coupon").click(
     function updateInfo() {
 var link1 = document.getElementById("sc-result-body").getAttribute('data_show');
 var catname = catname;
 console.log('ajax');
if (link1 == 1)
{
<?php /* // alert(username);
//var userName = '<?php echo $load; ?>';
//document.getElementById('sc-result-body').innerHTML = userName; */
?>
}
else
{
jQuery.ajax({
      type: "POST",
        url: "tests.php",
alert(asdasd);
      data: msg,
      success: function(data) {
          jQuery("#sc-result-body").html(data);
        },
        error:  function(xhr, str){
            alert("Возникла ошибка!");
      }
   })
// var userName = '<?php echo $load; ?>';
// document.getElementById('sc-result-body').innerHTML = userName;
// $('#sc-result-body').load('/templates/shaper_megadeal/html/com_virtuemart/productdetails/default_coupons_dealer.php');
$('#sc-result-body').attr('data_show', '1');
}
    }
);
  // конец показа купонов на странице товара
});
});
 
« Последнее редактирование: 09.08.2015, 19:49:19 от CaHeK_pk » Записан
CaHeK_pk
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 119


« Ответ #7 : 23.11.2015, 05:20:23 »

Все решилось, нужно создавать редирект файла в самой Joomla что бы все работало как часы, и после этого работать уже с js
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet