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

  • 7 Ответов
  • 1262 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

CaHeK_pk

  • Осваиваюсь на форуме
  • ***
  • 115
  • 2
Всем добрый день, почти доработал нужное расширение и на завершающем этапе попал в тупик.
имеется файл java.js
Код: javascript
   //Запуск показа купонов на странице товара
      $("#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
<?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

  • Профи
  • ********
  • 3800
  • 698
  • Все начинается с Value
CaHeK_pk это плохой стиль написания кода смешивая Js c jQuery вы получаете винегрет
Код: javascript
    $("#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

  • Осваиваюсь на форуме
  • ***
  • 115
  • 2
б
CaHeK_pk это плохой стиль написания кода смешивая Js c jQuery вы получаете винегрет
Код: javascript
    $("#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

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

*

CaHeK_pk

  • Осваиваюсь на форуме
  • ***
  • 115
  • 2
мы же не знаем содержимого вашего  $load;
по крайней мере вы можете его(контент) подгружать с помощью AJAX или вставлять с помощью шаблонизаторов js
Код: javascript
<script id="hello" type="text/template">
    Hello world
</script>
<script>
    alert(hello.innerHTML);
</script>
немного не понял....
сейчас при загрузке страницы, не нажимая ничего, скрипт имеет такой вид (просмотр исходного кода страницы)
Код: javascript
     	     $("#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

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

*

CaHeK_pk

  • Осваиваюсь на форуме
  • ***
  • 115
  • 2
вы должны по клику делать AJAX запрос с спомощью любого удобного метода jQuery (ajax, load, post, get ...) и получать данные с сервера
на сервере должна быть точка входа которая будет отвечать на ваш запрос и в ответ отдавать новый номер купона
здесь также много реализаций от лучщей к худшему
1. Контроллер
2. Отдельная точка входа файл
3. Плагин обрабатывающий onAfterInitialise
4. Файл в папке вашего шаблона с вызовом к примеру test.php лежит в папке вашего шаблона и возвращает номер
Код: javascript
$.post('/?tmpl=test', function(res){/* you code */});
я понимаю что глупые вопросы задаю, но у меня голова просто кругом уже идет) подскажите если вам не сложно что именно не так (хотя мне кажется все тут не так)
Код: javascript
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, 20:49:19 от CaHeK_pk »

*

CaHeK_pk

  • Осваиваюсь на форуме
  • ***
  • 115
  • 2
Все решилось, нужно создавать редирект файла в самой Joomla что бы все работало как часы, и после этого работать уже с js